Skip to content

Commit 70aa675

Browse files
committed
chore: deprecate getParser method across all parsers format.
1 parent ae9a8b2 commit 70aa675

File tree

13 files changed

+264
-14
lines changed

13 files changed

+264
-14
lines changed

news/deprecate-getParser.rst

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
**Added:**
2+
3+
* Added ``get_parser`` method in ``p_auto.py``
4+
* Added ``get_parser`` method in ``p_cif.py``
5+
* Added ``get_parser`` method in ``p_discus.py``
6+
* Added ``get_parser`` method in ``p_pdb.py``
7+
* Added ``get_parser`` method in ``p_pdffit.py``
8+
* Added ``get_parser`` method in ``p_rawxyz.py``
9+
* Added ``get_parser`` method in ``p_xcfg.py``
10+
* Added ``get_parser`` method in ``p_xyz.py``
11+
* Added ``get_parser`` method in ``parsers/__init__.py``
12+
13+
**Changed:**
14+
15+
* <news item>
16+
17+
**Deprecated:**
18+
19+
* Deprecated ``getParser`` method in ``p_auto.py`` for removal in version 4.0.0
20+
* Deprecated ``getParser`` method in ``p_cif.py`` for removal in version 4.0.0
21+
* Deprecated ``getParser`` method in ``p_discus.py`` for removal in version 4.0.0
22+
* Deprecated ``getParser`` method in ``p_pdb.py`` for removal in version 4.0.0
23+
* Deprecated ``getParser`` method in ``p_pdffit.py`` for removal in version 4.0.0
24+
* Deprecated ``getParser`` method in ``p_rawxyz.py`` for removal in version 4.0.0
25+
* Deprecated ``getParser`` method in ``p_xcfg.py`` for removal in version 4.0.0
26+
* Deprecated ``getParser`` method in ``p_xyz.py`` for removal in version 4.0.0
27+
* Deprecated ``getParser`` method in ``parsers/__init__.py`` for removal in version 4.0.0
28+
29+
**Removed:**
30+
31+
* <news item>
32+
33+
**Fixed:**
34+
35+
* <news item>
36+
37+
**Security:**
38+
39+
* <news item>

src/diffpy/structure/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
import diffpy.structure as _structure
4040
from diffpy.structure.atom import Atom
4141
from diffpy.structure.lattice import Lattice
42-
from diffpy.structure.parsers import getParser
42+
from diffpy.structure.parsers import get_parser
4343
from diffpy.structure.pdffitstructure import PDFFitStructure
4444
from diffpy.structure.structure import Structure
4545
from diffpy.structure.structureerrors import LatticeError, StructureFormatError, SymmetryError
@@ -97,7 +97,7 @@ def loadStructure(filename, fmt="auto", **kw):
9797
and 'discus' formats.
9898
"""
9999

100-
p = getParser(fmt, **kw)
100+
p = get_parser(fmt, **kw)
101101
rv = p.parse_file(filename)
102102
return rv
103103

src/diffpy/structure/parsers/__init__.py

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,48 @@
3333
from diffpy.structure.parsers.parser_index_mod import parser_index
3434
from diffpy.structure.parsers.structureparser import StructureParser
3535
from diffpy.structure.structureerrors import StructureFormatError
36+
from diffpy.utils._deprecator import build_deprecation_message, deprecated
3637

3738
# silence pyflakes checker
3839
assert StructureParser
3940

41+
parsers_base = "diffpy.structure"
42+
removal_version = "4.0.0"
43+
getParser_deprecation_msg = build_deprecation_message(
44+
parsers_base,
45+
"getParser",
46+
"get_parser",
47+
removal_version,
48+
)
4049

50+
51+
@deprecated(getParser_deprecation_msg)
4152
def getParser(format, **kw):
4253
"""Return Parser instance for a given structure format.
4354
55+
Parameters
56+
----------
57+
format : str
58+
String with the format name, see `parser_index_mod`.
59+
**kw : dict
60+
Keyword arguments passed to the Parser init function.
61+
62+
Returns
63+
-------
64+
Parser
65+
Parser instance for the given format.
66+
67+
Raises
68+
------
69+
StructureFormatError
70+
When the format is not defined.
71+
"""
72+
return get_parser(format, **kw)
73+
74+
75+
def get_parser(format, **kw):
76+
"""Return Parser instance for a given structure format.
77+
4478
Parameters
4579
----------
4680
format : str
@@ -65,7 +99,7 @@ def getParser(format, **kw):
6599
ns = {}
66100
import_cmd = "from diffpy.structure.parsers import %s as pm" % pmod
67101
exec(import_cmd, ns)
68-
return ns["pm"].getParser(**kw)
102+
return ns["pm"].get_parser(**kw)
69103

70104

71105
def inputFormats():

src/diffpy/structure/parsers/p_auto.py

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,14 +206,14 @@ def _wrap_parse_method(self, method: object, *args: object, **kwargs: object) ->
206206
------
207207
StructureFormatError
208208
"""
209-
from diffpy.structure.parsers import getParser
209+
from diffpy.structure.parsers import get_parser
210210

211211
ofmts = self._get_ordered_formats()
212212
stru = None
213213
# try all parsers in sequence
214214
parsers_emsgs = []
215215
for fmt in ofmts:
216-
p = getParser(fmt, **self.pkw)
216+
p = get_parser(fmt, **self.pkw)
217217
try:
218218
pmethod = getattr(p, method)
219219
stru = pmethod(*args, **kwargs)
@@ -240,10 +240,36 @@ def _wrap_parse_method(self, method: object, *args: object, **kwargs: object) ->
240240

241241
# Routines -------------------------------------------------------------------
242242

243+
parsers_base = "diffpy.structure"
244+
removal_version = "4.0.0"
245+
getParser_deprecation_msg = build_deprecation_message(
246+
parsers_base,
247+
"getParser",
248+
"get_parser",
249+
removal_version,
250+
)
243251

252+
253+
@deprecated(getParser_deprecation_msg)
244254
def getParser(**kw):
245255
"""Return a new instance of the automatic parser.
246256
257+
Parameters
258+
----------
259+
**kw : dict
260+
Keyword arguments for the structure parser
261+
262+
Returns
263+
-------
264+
P_auto
265+
Instance of `P_auto`.
266+
"""
267+
return get_parser(**kw)
268+
269+
270+
def get_parser(**kw):
271+
"""Return a new instance of the automatic parser.
272+
247273
Parameters
248274
----------
249275
**kw : dict

src/diffpy/structure/parsers/p_cif.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,13 @@ def toLines(self, stru):
802802

803803
# Routines -------------------------------------------------------------------
804804

805+
parsers_base = "diffpy.structure"
806+
getParser_deprecation_msg = build_deprecation_message(
807+
parsers_base,
808+
"getParser",
809+
"get_parser",
810+
removal_version,
811+
)
805812
# constant regular expression for leading_float()
806813
rx_float = re.compile(r"[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?")
807814

@@ -886,9 +893,27 @@ def getSymOp(s):
886893
return rv
887894

888895

896+
@deprecated(getParser_deprecation_msg)
889897
def getParser(eps=None):
890898
"""Return new `parser` object for CIF format.
891899
900+
Parameters
901+
----------
902+
eps : float, Optional
903+
fractional coordinates cutoff for duplicate positions.
904+
When ``None`` use the default for `ExpandAsymmetricUnit`: ``1.0e-5``.
905+
906+
Returns
907+
-------
908+
P_cif
909+
Instance of `P_cif`.
910+
"""
911+
return get_parser(eps)
912+
913+
914+
def get_parser(eps=None):
915+
"""Return new `parser` object for CIF format.
916+
892917
Parameters
893918
----------
894919
eps : float, Optional

src/diffpy/structure/parsers/p_discus.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from diffpy.structure import Lattice, PDFFitStructure
2121
from diffpy.structure.parsers import StructureParser
2222
from diffpy.structure.structureerrors import StructureFormatError
23+
from diffpy.utils._deprecator import build_deprecation_message, deprecated
2324

2425

2526
class P_discus(StructureParser):
@@ -386,10 +387,31 @@ def _parse_not_implemented(self, words):
386387

387388
# Routines -------------------------------------------------------------------
388389

390+
parsers_base = "diffpy.structure"
391+
removal_version = "4.0.0"
392+
getParser_deprecation_msg = build_deprecation_message(
393+
parsers_base,
394+
"getParser",
395+
"get_parser",
396+
removal_version,
397+
)
389398

399+
400+
@deprecated(getParser_deprecation_msg)
390401
def getParser():
391402
"""Return new `parser` object for DISCUS format.
392403
404+
Returns
405+
-------
406+
P_discus
407+
Instance of `P_discus`.
408+
"""
409+
return get_parser()
410+
411+
412+
def get_parser():
413+
"""Return new `parser` object for DISCUS format.
414+
393415
Returns
394416
-------
395417
P_discus

src/diffpy/structure/parsers/p_pdb.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,10 +439,30 @@ def toLines(self, stru):
439439

440440
# Routines -------------------------------------------------------------------
441441

442+
parsers_base = "diffpy.structure"
443+
getParser_deprecation_msg = build_deprecation_message(
444+
parsers_base,
445+
"getParser",
446+
"get_parser",
447+
removal_version,
448+
)
449+
442450

451+
@deprecated(getParser_deprecation_msg)
443452
def getParser():
444453
"""Return new `parser` object for PDB format.
445454
455+
Returns
456+
-------
457+
P_pdb
458+
Instance of `P_pdb`.
459+
"""
460+
return get_parser()
461+
462+
463+
def get_parser():
464+
"""Return new `parser` object for PDB format.
465+
446466
Returns
447467
-------
448468
P_pdb

src/diffpy/structure/parsers/p_pdffit.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,17 @@ def _parse_shape(self, line):
311311
def getParser():
312312
"""Return new `parser` object for PDFfit format.
313313
314+
Returns
315+
-------
316+
P_pdffit
317+
Instance of `P_pdffit`.
318+
"""
319+
return get_parser()
320+
321+
322+
def get_parser():
323+
"""Return new `parser` object for PDFfit format.
324+
314325
Returns
315326
-------
316327
P_pdffit

src/diffpy/structure/parsers/p_rawxyz.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,30 @@ def toLines(self, stru):
155155

156156
# Routines -------------------------------------------------------------------
157157

158+
parsers_base = "diffpy.structure"
159+
getParser_deprecation_msg = build_deprecation_message(
160+
parsers_base,
161+
"getParser",
162+
"get_parser",
163+
removal_version,
164+
)
165+
158166

167+
@deprecated(getParser_deprecation_msg)
159168
def getParser():
160169
"""Return new `parser` object for RAWXYZ format.
161170
171+
Returns
172+
-------
173+
P_rawxyz
174+
Instance of `P_rawxyz`.
175+
"""
176+
return get_parser()
177+
178+
179+
def get_parser():
180+
"""Return new `parser` object for RAWXYZ format.
181+
162182
Returns
163183
-------
164184
P_rawxyz

src/diffpy/structure/parsers/p_xcfg.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,10 +432,30 @@ def toLines(self, stru):
432432

433433
# Routines -------------------------------------------------------------------
434434

435+
parsers_base = "diffpy.structure"
436+
getParser_deprecation_msg = build_deprecation_message(
437+
parsers_base,
438+
"getParser",
439+
"get_parser",
440+
removal_version,
441+
)
442+
435443

444+
@deprecated(getParser_deprecation_msg)
436445
def getParser():
437446
"""Return new `parser` object for XCFG format.
438447
448+
Returns
449+
-------
450+
P_xcfg
451+
Instance of `P_xcfg`.
452+
"""
453+
return get_parser()
454+
455+
456+
def get_parser():
457+
"""Return new `parser` object for XCFG format.
458+
439459
Returns
440460
-------
441461
P_xcfg

0 commit comments

Comments
 (0)