flexcode 0.1.5__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. flexcode-0.2.2/.copier-answers.yml +15 -0
  2. flexcode-0.2.2/.github/workflows/linting.yml +33 -0
  3. flexcode-0.2.2/.github/workflows/publish-to-pypi.yml +39 -0
  4. flexcode-0.2.2/.github/workflows/smoke-test.yml +33 -0
  5. flexcode-0.2.2/.github/workflows/testing-and-coverage.yml +43 -0
  6. flexcode-0.2.2/.gitignore +140 -0
  7. flexcode-0.2.2/.pre-commit-config.yaml +99 -0
  8. flexcode-0.2.2/.readthedocs.yml +22 -0
  9. flexcode-0.2.2/.travis.yml +15 -0
  10. flexcode-0.2.2/LICENSE +340 -0
  11. flexcode-0.2.2/PKG-INFO +502 -0
  12. {flexcode-0.1.5 → flexcode-0.2.2}/README.md +7 -7
  13. flexcode-0.2.2/archive/README.md +10 -0
  14. flexcode-0.2.2/archive/x_setup.cfg +5 -0
  15. flexcode-0.1.5/setup.py → flexcode-0.2.2/archive/x_setup.py +5 -5
  16. flexcode-0.2.2/archive/x_tox.ini +14 -0
  17. flexcode-0.2.2/docs/Makefile +31 -0
  18. flexcode-0.2.2/docs/conf.py +46 -0
  19. flexcode-0.2.2/docs/index.rst +13 -0
  20. flexcode-0.2.2/docs/notebooks/README.md +1 -0
  21. flexcode-0.2.2/docs/notebooks/intro_notebook.ipynb +111 -0
  22. flexcode-0.2.2/docs/notebooks.rst +6 -0
  23. flexcode-0.2.2/docs/requirements.txt +9 -0
  24. flexcode-0.2.2/pyproject.toml +53 -0
  25. flexcode-0.2.2/setup.cfg +4 -0
  26. flexcode-0.2.2/src/.pylintrc +626 -0
  27. flexcode-0.2.2/src/flexcode/_version.py +21 -0
  28. {flexcode-0.1.5 → flexcode-0.2.2}/src/flexcode/basis_functions.py +37 -7
  29. {flexcode-0.1.5 → flexcode-0.2.2}/src/flexcode/core.py +41 -28
  30. flexcode-0.2.2/src/flexcode/helpers.py +83 -0
  31. {flexcode-0.1.5 → flexcode-0.2.2}/src/flexcode/loss_functions.py +2 -1
  32. {flexcode-0.1.5 → flexcode-0.2.2}/src/flexcode/post_processing.py +12 -5
  33. flexcode-0.2.2/src/flexcode/regression_models.py +271 -0
  34. flexcode-0.2.2/src/flexcode.egg-info/PKG-INFO +502 -0
  35. flexcode-0.2.2/src/flexcode.egg-info/SOURCES.txt +47 -0
  36. flexcode-0.2.2/src/flexcode.egg-info/requires.txt +19 -0
  37. flexcode-0.2.2/tests/flexcode/.pylintrc +627 -0
  38. flexcode-0.2.2/tests/flexcode/conftest.py +27 -0
  39. flexcode-0.2.2/tests/flexcode/context.py +6 -0
  40. flexcode-0.2.2/tests/flexcode/test_cv_optim.py +142 -0
  41. flexcode-0.2.2/tests/flexcode/test_models_fit.py +175 -0
  42. flexcode-0.2.2/tests/flexcode/test_params_handling.py +78 -0
  43. flexcode-0.2.2/tests/flexcode/test_post_processing.py +34 -0
  44. flexcode-0.2.2/tutorial/Flexcode-tutorial-teddy.ipynb +552 -0
  45. flexcode-0.2.2/vignettes/Custom Class.ipynb +189 -0
  46. flexcode-0.2.2/vignettes/Model Save and Bumps Removal - Flexcode.ipynb +219 -0
  47. flexcode-0.1.5/PKG-INFO +0 -14
  48. flexcode-0.1.5/setup.cfg +0 -10
  49. flexcode-0.1.5/src/flexcode/helpers.py +0 -26
  50. flexcode-0.1.5/src/flexcode/regression_models.py +0 -99
  51. flexcode-0.1.5/src/flexcode.egg-info/PKG-INFO +0 -14
  52. flexcode-0.1.5/src/flexcode.egg-info/SOURCES.txt +0 -16
  53. flexcode-0.1.5/src/flexcode.egg-info/requires.txt +0 -12
  54. flexcode-0.1.5/src/flexcode.egg-info/zip-safe +0 -1
  55. {flexcode-0.1.5 → flexcode-0.2.2}/src/flexcode/__init__.py +0 -0
  56. {flexcode-0.1.5 → flexcode-0.2.2}/src/flexcode.egg-info/dependency_links.txt +0 -0
  57. {flexcode-0.1.5 → flexcode-0.2.2}/src/flexcode.egg-info/top_level.txt +0 -0
@@ -0,0 +1,15 @@
1
+ # Changes here will be overwritten by Copier
2
+ _commit: v1.3.0
3
+ _src_path: gh:lincc-frameworks/python-project-template
4
+ author_email: annlee@andrew.cmu.edu
5
+ author_name: Ann Lee
6
+ create_example_module: false
7
+ custom_install: true
8
+ include_notebooks: true
9
+ module_name: flexcode
10
+ mypy_type_checking: none
11
+ preferred_linter: black
12
+ project_license: none
13
+ project_name: flexcode
14
+ use_gitlfs: none
15
+ use_isort: true
@@ -0,0 +1,33 @@
1
+ # This workflow will install Python dependencies, then perform static linting analysis.
2
+ # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
3
+
4
+ name: Lint
5
+
6
+ on:
7
+ push:
8
+ branches: [ main ]
9
+ pull_request:
10
+ branches: [ main ]
11
+
12
+ jobs:
13
+ build:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v3
17
+ - name: Set up Python 3.10
18
+ uses: actions/setup-python@v4
19
+ with:
20
+ python-version: '3.10'
21
+ - name: Install dependencies
22
+ run: |
23
+ sudo apt-get update
24
+ python -m pip install --upgrade pip
25
+ pip install .
26
+ pip install .[dev]
27
+ if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
28
+ - name: Analyze code with linter
29
+
30
+ uses: psf/black@stable
31
+ with:
32
+ src: ./src
33
+
@@ -0,0 +1,39 @@
1
+ # This workflow will upload a Python Package using Twine when a release is created
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
3
+
4
+ # This workflow uses actions that are not certified by GitHub.
5
+ # They are provided by a third-party and are governed by
6
+ # separate terms of service, privacy policy, and support
7
+ # documentation.
8
+
9
+ name: Upload Python Package
10
+
11
+ on:
12
+ release:
13
+ types: [published]
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ jobs:
19
+ deploy:
20
+
21
+ runs-on: ubuntu-latest
22
+
23
+ steps:
24
+ - uses: actions/checkout@v3
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v4
27
+ with:
28
+ python-version: '3.x'
29
+ - name: Install dependencies
30
+ run: |
31
+ python -m pip install --upgrade pip
32
+ pip install build
33
+ - name: Build package
34
+ run: python -m build
35
+ - name: Publish package
36
+ uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
37
+ with:
38
+ user: __token__
39
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,33 @@
1
+ # This workflow will run daily at 06:45.
2
+ # It will install Python dependencies and run tests with a variety of Python versions.
3
+
4
+ name: Unit test smoke test
5
+
6
+ on:
7
+ schedule:
8
+ - cron: 45 6 * * *
9
+
10
+ jobs:
11
+ build:
12
+
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ python-version: ['3.10', '3.11', '3.12']
17
+
18
+ steps:
19
+ - uses: actions/checkout@v3
20
+ - name: Set up Python ${{ matrix.python-version }}
21
+ uses: actions/setup-python@v4
22
+ with:
23
+ python-version: ${{ matrix.python-version }}
24
+ - name: Install dependencies
25
+ run: |
26
+ sudo apt-get update
27
+ python -m pip install --upgrade pip
28
+ pip install .
29
+ pip install .[dev]
30
+ if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
31
+ - name: Run unit tests with pytest
32
+ run: |
33
+ python -m pytest tests
@@ -0,0 +1,43 @@
1
+ # This workflow will install Python dependencies, run tests and report code coverage with a variety of Python versions
2
+ # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
3
+
4
+ name: Unit test and code coverage
5
+
6
+ on:
7
+ push:
8
+ branches: [ main ]
9
+ pull_request:
10
+ branches: [ main ]
11
+
12
+ jobs:
13
+ build:
14
+
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ python-version: ['3.10', '3.11', '3.12']
19
+
20
+ steps:
21
+ - uses: actions/checkout@v3
22
+ - name: Set up Python ${{ matrix.python-version }}
23
+ uses: actions/setup-python@v4
24
+ with:
25
+ python-version: ${{ matrix.python-version }}
26
+ - name: Install dependencies
27
+ run: |
28
+ sudo apt-get update
29
+ python -m pip install --upgrade pip
30
+ pip install .
31
+ pip install .[dev]
32
+ if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
33
+ - name: Run unit tests with pytest
34
+ run: |
35
+ python -m pytest tests --cov=flexcode --cov-report=xml
36
+ - name: Upload coverage report to codecov
37
+ uses: codecov/codecov-action@v3
38
+ - name: Install notebook requirements
39
+ run: |
40
+ sudo apt-get install pandoc
41
+ - name: Build docs
42
+ run: |
43
+ sphinx-build -T -E -b html -d docs/build/doctrees ./docs docs/build/html
@@ -0,0 +1,140 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+ _version.py
30
+
31
+ # PyInstaller
32
+ # Usually these files are written by a python script from a template
33
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
34
+ *.manifest
35
+ *.spec
36
+
37
+ # Installer logs
38
+ pip-log.txt
39
+ pip-delete-this-directory.txt
40
+
41
+ # Unit test / coverage reports
42
+ htmlcov/
43
+ .tox/
44
+ .nox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *.cover
51
+ *.py,cover
52
+ .hypothesis/
53
+ .pytest_cache/
54
+
55
+ # Translations
56
+ *.mo
57
+ *.pot
58
+
59
+ # Django stuff:
60
+ *.log
61
+ local_settings.py
62
+ db.sqlite3
63
+ db.sqlite3-journal
64
+
65
+ # Flask stuff:
66
+ instance/
67
+ .webassets-cache
68
+
69
+ # Scrapy stuff:
70
+ .scrapy
71
+
72
+ # Sphinx documentation
73
+ docs/_build/
74
+ _readthedocs/
75
+
76
+ # PyBuilder
77
+ target/
78
+
79
+ # Jupyter Notebook
80
+ .ipynb_checkpoints
81
+
82
+ # IPython
83
+ profile_default/
84
+ ipython_config.py
85
+
86
+ # pyenv
87
+ .python-version
88
+
89
+ # pipenv
90
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
91
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
92
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
93
+ # install all needed dependencies.
94
+ #Pipfile.lock
95
+
96
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
97
+ __pypackages__/
98
+
99
+ # Celery stuff
100
+ celerybeat-schedule
101
+ celerybeat.pid
102
+
103
+ # SageMath parsed files
104
+ *.sage.py
105
+
106
+ # Environments
107
+ .env
108
+ .venv
109
+ env/
110
+ venv/
111
+ ENV/
112
+ env.bak/
113
+ venv.bak/
114
+
115
+ # Spyder project settings
116
+ .spyderproject
117
+ .spyproject
118
+
119
+ # Rope project settings
120
+ .ropeproject
121
+
122
+ # mkdocs documentation
123
+ /site
124
+
125
+ # mypy
126
+ .mypy_cache/
127
+ .dmypy.json
128
+ dmypy.json
129
+
130
+ # Pyre type checker
131
+ .pyre/
132
+
133
+ # vscode
134
+ .vscode/
135
+
136
+ # dask
137
+ dask-worker-space/
138
+
139
+ # tmp directory
140
+ tmp/
@@ -0,0 +1,99 @@
1
+ repos:
2
+
3
+ # Clear output from jupyter notebooks so that only the input cells are committed.
4
+ - repo: local
5
+ hooks:
6
+ - id: jupyter-nb-clear-output
7
+ name: jupyter-nb-clear-output
8
+ description: Clear output from Jupyter notebooks.
9
+ files: \.ipynb$
10
+ stages: [commit]
11
+ language: system
12
+ entry: jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace
13
+
14
+ # Run unit tests, verify that they pass. Note that coverage is run against
15
+ # the ./src directory here because that is what will be committed. In the
16
+ # github workflow script, the coverage is run against the installed package
17
+ # and uploaded to Codecov by calling pytest like so:
18
+ # `python -m pytest --cov=<package_name> --cov-report=xml`
19
+ - repo: local
20
+ hooks:
21
+ - id: pytest-check
22
+ name: pytest-check
23
+ description: Run unit tests with pytest.
24
+ entry: bash -c "if python -m pytest --co -qq; then python -m pytest --cov=./src --cov-report=html; fi"
25
+ language: system
26
+ pass_filenames: false
27
+ always_run: true
28
+
29
+ # prevents committing directly branches named 'main' and 'master'.
30
+ - repo: https://github.com/pre-commit/pre-commit-hooks
31
+ rev: v4.4.0
32
+ hooks:
33
+ - id: no-commit-to-branch
34
+ name: Don't commit to main or master branch
35
+ description: Prevent the user from committing directly to the primary branch.
36
+ - id: check-added-large-files
37
+ name: Check for large files
38
+ description: Prevent the user from committing very large files.
39
+ args: ['--maxkb=500']
40
+
41
+ # verify that pyproject.toml is well formed
42
+ - repo: https://github.com/abravalheri/validate-pyproject
43
+ rev: v0.12.1
44
+ hooks:
45
+ - id: validate-pyproject
46
+ name: Validate syntax of pyproject.toml
47
+ description: Verify that pyproject.toml adheres to the established schema.
48
+
49
+ # Automatically sort the imports used in .py files
50
+ - repo: https://github.com/pycqa/isort
51
+ rev: 5.12.0
52
+ hooks:
53
+ - id: isort
54
+ name: isort (python files in src/ and tests/)
55
+ description: Sort and organize imports in .py files.
56
+ types: [python]
57
+ files: ^(src|tests)/
58
+
59
+
60
+ # Analyze the code style and report code that doesn't adhere.
61
+ - repo: https://github.com/psf/black
62
+ rev: 23.1.0
63
+ hooks:
64
+ - id: black
65
+ types: [python]
66
+ files: ^(src|tests)/
67
+ # It is recommended to specify the latest version of Python
68
+ # supported by your project here, or alternatively use
69
+ # pre-commit's default_language_version, see
70
+ # https://pre-commit.com/#top_level-default_language_version
71
+ language_version: python3.10
72
+
73
+
74
+ # Make sure Sphinx can build the documentation while explicitly omitting
75
+ # notebooks from the docs, so users don't have to wait through the execution
76
+ # of each notebook or each commit. By default, these will be checked in the
77
+ # GitHub workflows.
78
+ - repo: local
79
+ hooks:
80
+ - id: sphinx-build
81
+ name: Build documentation with Sphinx
82
+ entry: sphinx-build
83
+ language: system
84
+ always_run: true
85
+ exclude_types: [file, symlink]
86
+ args:
87
+ [
88
+ "-M", # Run sphinx in make mode, so we can use -D flag later
89
+ # Note: -M requires next 3 args to be builder, source, output
90
+ "html", # Specify builder
91
+ "./docs", # Source directory of documents
92
+ "./docs/build/html", # Output directory for rendered documents
93
+ "-T", # Show full trace back on exception
94
+ "-E", # Don't use saved env; always read all files
95
+ "-d", # Flag for cached environment and doctrees
96
+ "./docs/build/doctrees", # Directory
97
+ "-D", # Flag to override settings in conf.py
98
+ "exclude_patterns=notebooks/*", # Exclude our notebooks from pre-commit
99
+ ]
@@ -0,0 +1,22 @@
1
+ # .readthedocs.yml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ build:
9
+ os: ubuntu-22.04
10
+ tools:
11
+ python: "3.10"
12
+
13
+ # Build documentation in the docs/ directory with Sphinx
14
+ sphinx:
15
+ configuration: docs/conf.py
16
+
17
+ # Optionally declare the Python requirements required to build your docs
18
+ python:
19
+ install:
20
+ - requirements: docs/requirements.txt
21
+ - method: pip
22
+ path: .
@@ -0,0 +1,15 @@
1
+ sudo: false
2
+ language: python
3
+ python:
4
+ - '2.7'
5
+ - '3.6'
6
+ install: pip install tox-travis
7
+ script: tox
8
+ deploy:
9
+ provider: pypi
10
+ on:
11
+ tags: true
12
+ condition: $TRAVIS_PYTHON_VERSION = "3.6"
13
+ user: tpospisi
14
+ password:
15
+ secure: oOtSw47ptRh+ELY0r3llOm2tjMy5iqhaxpnMEVgp48owe2MhvMxvvhtSxvFfRklzmFjB45hBVuERYjp1LXA9paC1rCEnigqgHisiyNHx7+QdQ4qGehv155pTDUOSXiPObiozEgE2rM6QXkwdAbAVvDt9f7YA0UjgQ+AQrDGBGuAWxqLi/aoCsqUcnwdkk64CNJq4J9W9S7KfJuUPcOVTorujA21p9/r8sOUUFDwkb7TmXOc+8LDDl6IEkgjhcckjOMGBW4Byh+bz6EfSbM1JkHdSlBLYFMdysO9WII3YhvMr4kGTEmBfeSI5p/J9lAtQAexiV2pWLobMFOZYt37LHDtMY7xaBR1bWPITkJevS26rFQ6WB+hypi1TDINB9apVXOzw/rPd8OvjKg4H6pNbCIGHL1NEwHxuvEIVFVxU/n9981CesC02NyC9PqIiL2ahihkk0f0j7b/an2tyundipgPPydg9Ut+GWVGG597Nban4awEy3zaCdGF8VCzaW76/neT0zrteOVKtpzSg/yJBq9/7Zqm4L7uCX5qGFIpguT4B4iab2GMPOZ5xSE5NqRjq2++3xr8aP86MSyJel4d1z/4C22FBmsugJb6QoiQD4VdvJVVDKxNqLC8zOAghZ4sIJ3/EgCDLSw5h+3iT/VcLiaQZLio+PqN/Zrx//LYFgDg=