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

ENH: Potentially interesting packages #27

Open
BvB93 opened this issue Apr 9, 2019 · 6 comments
Open

ENH: Potentially interesting packages #27

BvB93 opened this issue Apr 9, 2019 · 6 comments
Assignees
Labels
enhancement New feature or request

Comments

@BvB93
Copy link
Member

BvB93 commented Apr 9, 2019

Candidates

  • NumExpr: Fast numerical array expression evaluator for Python, NumPy, PyTables, pandas, bcolz and more.
    • Support for >2D arrays appears to be somewhat limited; this could be problematic.
  • Numba: Numba is an open source JIT compiler that translates a subset of Python and NumPy code into fast machine code.
    • Previous attempt at using Numba were rather unsuccessful, i.e. exceptions were appearing everywhere. Should revisit this at some point.
  • Seaborn: Seaborn is a Python visualization library based on matplotlib. It provides a high-level interface for drawing attractive statistical graphics.
  • yatiml: YAtiML is a small Python library that works with ruamel.yaml, adding functions for automatic type recognition to it. YAtiML is not a schema language like XSD and Relax-NG are for XML, or JSON Schema is for JSON. YAtiML is also not an Object/YAML mapper (YAML is already an object serialisation system, so you don't need an extra library for that). However, YAtiML does solve the same kind of problems, and more, so if you are looking for a schema language for YAML, YAtiML may actually be what you need.
    • Has some potentially interesting applications considering the extensive use of the .yaml format throughout Auto-FOX.

Implemented

  • DASK: Dask is a flexible library for parallel computing in Python.
    • DASK is now used for accelerating the construction of angular distribution functions (ADFs).
  • hdf5: Pythonic interface to the HDF5 binary data format.
    • The plans is to include this as a (non-optional) dependency for the next release for storing all Monte Carlo (MC) results. Will probably make it optional at a later point, the MC module reverting to the NPY format if HDF5 is not available.
    • hdf5 is now mandatory for use of the ARMC module(s).
    • hdf5 is now mandatory for all of Auto-FOX starting from 0.8.
  • sphinx.ext.napoleon: Napoleon is a extension that enables Sphinx to parse both NumPy and Google style docstrings - the style recommended by Khan Academy.
    • The Google style looks very attractive; it has much less visual clutter compared to the standard docstring style.
    • The NumPy docstring style is now used in Auto-FOX.

Rejected

  • pyparsing: The pyparsing module is an alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions. The pyparsing module provides a library of classes that client code uses to construct the grammar directly in Python code.
    • Potentially usefull for parsing input files.
    • Rejected in favor of the (well-defined) .yaml input format.
  • NumPy with OpenBlas support: A potentially easy way to improve NumPy performance (1). Precompiled versions are distributed on the conda-forge channel, which should make installation a bit easier.
    • Will probably include this as an optional dependency at some point, including (much needed) installation instructions.
    • This is considered the users responsibility.
@BvB93 BvB93 added the enhancement New feature or request label Apr 9, 2019
@BvB93 BvB93 self-assigned this Apr 9, 2019
@felipeZ
Copy link
Member

felipeZ commented Apr 9, 2019

You would probably like to add Numba to the list

@BvB93
Copy link
Member Author

BvB93 commented Apr 15, 2019

Hdf5 has been made a hard requirement for the Monte Carlo FF optimization (1).

@BvB93
Copy link
Member Author

BvB93 commented Jun 11, 2019

sphinx.ext.napoleon: NumPy docstring style implemented in #38.

@BvB93
Copy link
Member Author

BvB93 commented Jun 11, 2019

Plans for making hdf5 optional are on hold indefinitely.

@BvB93
Copy link
Member Author

BvB93 commented Jun 24, 2019

If installed, DASK is now used for accelerating the construction of angular distribution functions (ADFs).

@BvB93
Copy link
Member Author

BvB93 commented Jul 2, 2019

Added pyparsing.

@BvB93 BvB93 pinned this issue Apr 6, 2020
@BvB93 BvB93 changed the title Potentially interesting packages ENH: Potentially interesting packages Dec 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants