Changes:
- Added
CHANGELOG.md
- Set source code encoding to UTF-8 explicitly, since for Python 2 ASCII would be the default. For Python 3 the default is UTF-8.
- Separated code of
__init__.py
into individual files, updating the package structure (#15)- Resulted in a new
parser.py
file containing the actual parser, aelement.py
containing the elements the parser can parse and atags.py
containing the used GEDCOM tags
- Resulted in a new
- Separated code of new
element.py
into individual modules extending theElement
class within new submoduleelement
to better
differentiate between the type ofElement
s the parser parses (e.g.FamilyElement
,IndividualElement
, ...) - Added
helpers.py
containing helper functions like a@deprecated
annotation to annotate methods or classes as
deprecated. (The helpers may be removed when its contents are no longer used within the project.) - GEDCOM file is no longer parsed within constructor of
Parser
class (the actual parser; it was namedGedcom
before).
The new way to parse is as follows:# from gedcom import Gedcom <- Old way of importing the parser from gedcom.parser import Parser file_path = '' # Path to your `.ged` file # The old way would be to supply the `Parser` (or `Gedcom`) class the `file_path` as its first parameter on initialization gedcom_parser = Parser() # The new way to parse a GEDCOM file gedcom_parser.parse_file(file_path) # ...
Deprecations:
get_individual()
method withinElement
class. Useto_gedcom_string()
instead.given_match()
method withinIndividualElement
class. Usegiven_name_match()
instead.get_burial()
method withinIndividualElement
class. Useget_burial_data()
instead.get_burial()
method withinIndividualElement
class. Useget_burial_data()
instead.get_census()
method withinIndividualElement
class. Useget_census_data()
instead.
Migrating from v0.2.x to v1.0.0:
The old way of importing the gedcom
package was like this: from gedcom import Gedcom
.
The new package code is separated into individual modules within the package. So Parser
(the actual parser which was named Gedcom
) would be imported like this:
from gedcom.parser import Parser
, since the Parser
class lies within the module parser
within the package gedcom
.
Same procedure for the Element
class: from gedcom.element.element import Element
, since the Element
class lies
within the package gedcom
, the subpackage element
and the module element
.
This allows for better maintainability and scalability.
If there are any questions or you encounter a bug please open an issue here.