Skip to content

Minor fixes and cleanup #356

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Feb 17, 2020
Merged

Minor fixes and cleanup #356

merged 10 commits into from
Feb 17, 2020

Conversation

mpsonntag
Copy link
Contributor

This PR introduces a couple of fixes and updates:

  • cleans up all usages of the unsafe yaml.load calls and replaces them with yaml.save_load. This also prepares for Python 3.9 compatibility.
  • refactors dtype tests that are still using assertRegexpMatches which is supported in Python 2 but not in Python 3.9 and adds assertRegex instead which is supported in Python 3.2+ but not in Python 2.
  • adds a warning module deprecation warning if the odml library is used with a Python version < 3.6.
  • refactors odml style tuple handling and closes Error when trying to save lists of odML style tuples #250, [dtypes] odML style tuples are not properly saved #353 and [dtypes] Tuple error handling #354. Now lists of odml style tuples are properly saved to file and can be loaded again. If an invalid format is used to add an odml style tuple, more detailed exception messages are available. Also adds more odml style tuples tests.

'yaml.load' should not be used any longer without
providing a specific loader. The instances where a
specific loader is not required were now replaced
with the 'yaml.safe_load' method that uses the
'SafeLoader' class by default.
Add a warning when importing odml with an
outdated Python version.
Since 'version_info' is available via the odmltools
package import, rename it to python_version to clarify
the context of this function.
- update README file extension rtf->md
- use recursive-include to add odml/resources
- add test/resources files
Closes G-Node#353, closes G-Node#250

Use the parser_utils odml_tuple_export function
in xmlparser and dict_parser. It is required to
properly serialize odml style tuples to XML, JSON
and YAML files.
Closes G-Node#354

Also updates the corresponding test.
When loading odml style tuples from a yaml or json file
with Python 2, the string containing the tuples is not
properly parsed from a unicode string to a list of
odml style tuples.
With JSON and YAML in Python 3 this conversion works out
of the box but to not break Python 2 compatibility already
this hotfix is introduced.
@coveralls
Copy link

Coverage Status

Coverage increased (+0.1%) to 75.248% when pulling f4b7202 on mpsonntag:minorFixes into 92e5781 on G-Node:master.

import odml.dtypes as typ


class TestTypes(unittest.TestCase):

def assertLocalRegExp(self, text, regular_expression):
"""
Python 2 is dead and assertRegexpMatches is deprecated and
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Python 2 is dead and assertRegexpMatches is deprecated and
Python 2 is **DEAD** and assertRegexpMatches is deprecated and

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Error when trying to save lists of odML style tuples
3 participants