- 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__.pyinto individual files, updating the package structure (#15)- Resulted in a new
parser.pyfile containing the actual parser, aelement.pycontaining the elements the parser can parse and atags.pycontaining the used GEDCOM tags
- Resulted in a new
- Separated code of new
element.pyinto individual modules extending theElementclass within new submoduleelementto better differentiate between the type ofElements the parser parses (e.g.FamilyElement,IndividualElement, ...) - Added
helpers.pycontaining helper functions like a@deprecatedannotation 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
Parserclass (the actual parser; it was namedGedcombefore). 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) # ...
get_individual()method withinElementclass. Useto_gedcom_string()instead.given_match()method withinIndividualElementclass. Usegiven_name_match()instead.get_burial()method withinIndividualElementclass. Useget_burial_data()instead.get_burial()method withinIndividualElementclass. Useget_burial_data()instead.get_census()method withinIndividualElementclass. Useget_census_data()instead.
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.
- Updated project structure (#18)
- Fixed
setup.pyoutputting correct markdown when reading theREADME.md(#16) - Applied Flake8 code style and added explicit error handling
- Set up test suite
- Support BOM control characters (#5)
- Support the last line not having a CR and/or LF
- Support incorrect line splitting generated by Ancestry. Insert CONT/CONC tag as necessary (#6)
- Changed broken links to GEDCOM format specification (#2)
- Added
developbranch to track and update current development process - Applied PEP 8 Style Guide conventions
- Renamed variables and methods to make their purpose more clear
- Outsourced GEDCOM tags to module level
- Added missing inline documentation
- Optimized
README.md(sections and better description) - Added
LICENSEfile - Cleaned up and optimized code
- initial release; forked