Skip to content
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

Janitoring todo list before 1.0.0 #204

Open
10 of 22 tasks
tovrstra opened this issue Aug 27, 2020 · 0 comments
Open
10 of 22 tasks

Janitoring todo list before 1.0.0 #204

tovrstra opened this issue Aug 27, 2020 · 0 comments
Labels
API breaking Should be done first to stabilize API
Milestone

Comments

@tovrstra
Copy link
Member

tovrstra commented Aug 27, 2020

I'll keep a list of minor cleanups that should be done. It is easier to carry these out when all PRs are merged because these cleanups touch many parts of the code, easily causing merge conflicts:

  • Turn all __all__ lists into tuples. See Make __all__ immutable #354
  • Update (year in) source code headers
  • Remove all str(...) calls from unit tests related to paths obtained with importlib.resources.as_file. IOData can work without this conversion. Type hints in iodata.api should be updated to also accept pathlib.Path instances.
  • Start testing on Python 3.13 (wait for numpy and scipy wheels)
  • Add encoding argument to user functions in iodata.api
  • Replace all assert statements in non-test code by proper warnings (or errors) Replace asserts by errors or warnings #365
  • Add citation of IOData to documentation in various formats: bibtex, ... See Make it easier to cite the IOData paper #346
  • API fix: rename json.py module to qcscheme.py and remove the "*.json" from PATTERNS, so that one has to specify the format explicitly in load_one and dump_one. This is a more sensible default because there are multiple JSON formats we could support. See e.g. Support for NOMAD JSON? #223 Also ASE has its own JSON schema and there is also the CJSON format. See Rename json to json_qcschema #360
  • Go through issues on deepsource and fix the ones that are not false positives. See: https://app.deepsource.com/gh/theochem/iodata
  • Add links from documentation back to GitHub. See Add edit page button and link to GitHub in docs #342
  • Check # pylint: disable= scopes. I noticed I've been placing them incorrectly, see e.g. this fix: 7ea9300
  • As we are supporting more dump_one functionality, it is best to have a comprehensive implementation of check_load_dump_consistency function in iodata/test/common.py module, so that all formats use the same function in testing load (fmt1), dump(fmt2), load(fmt2), and compare two loaded IOData (fmt1 and fmt2 can be the same or different).
  • Remove untested conventions from file formats
  • Prepend an underscore to (obviously) local functions in the formats modules.
  • Fix all errors and warnings in the sphinx documentation build
  • Go through the code coverage. We should have 100% covarage in the unit tests. (If not, some tests are not working.) Also in the main code there may be opportunities to add tests.
  • Replace np.float by float. The former is being deprecated.
  • Catch or fix all warnings generated in unit tests.
  • Rename constants in utils.periodic (and potentially elsewhere) to uppercase.
  • Rename atffparams['charges'] to atffparams['atcharges']
  • Discuss which often-used fields in extra, atffparams and fields (from the input writer) can be promoted to proper IOData attributes or properties.
  • Remove unused branches on the main repo. main and gh-pages are the only two that should be kept. It would be good to protect the repo against accidental pushing of other branches.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API breaking Should be done first to stabilize API
Projects
None yet
Development

No branches or pull requests

1 participant