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

Rename to pymc-extras #404

Merged
merged 2 commits into from
Dec 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1 @@
pymc_experimental/_version.py export-subst
pymc_extras/_version.py export-subst
8 changes: 4 additions & 4 deletions .github/workflows/pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,18 @@ jobs:
cd test-sdist
python -m venv venv-sdist
venv-sdist/bin/python -m pip install numpy
venv-sdist/bin/python -m pip install ../dist/pymc_experimental*.tar.gz
venv-sdist/bin/python -m pip install ../dist/pymc_extras*.tar.gz
echo "Checking import and version number (on release)"
venv-sdist/bin/python -c "import pymc_experimental as pmx; assert pmx.__version__ == '${{ github.ref_name }}'[1:] if '${{ github.ref_type }}' == 'tag' else True; print(pmx.__version__)"
venv-sdist/bin/python -c "import pymc_extras as pmx; assert pmx.__version__ == '${{ github.ref_name }}'[1:] if '${{ github.ref_type }}' == 'tag' else True; print(pmx.__version__)"
cd ..
- name: Check the bdist installs and imports
run: |
mkdir -p test-bdist
cd test-bdist
python -m venv venv-bdist
venv-bdist/bin/python -m pip install ../dist/pymc_experimental*.whl
venv-bdist/bin/python -m pip install ../dist/pymc_extras*.whl
echo "Checking import and version number (on release)"
venv-bdist/bin/python -c "import pymc_experimental as pmx; assert pmx.__version__ == '${{ github.ref_name }}'[1:] if '${{ github.ref_type }}' == 'tag' else pmx.__version__; print(pmx.__version__)"
venv-bdist/bin/python -c "import pymc_extras as pmx; assert pmx.__version__ == '${{ github.ref_name }}'[1:] if '${{ github.ref_type }}' == 'tag' else pmx.__version__; print(pmx.__version__)"
cd ..
- uses: actions/upload-artifact@v3
with:
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
branches: [main]
paths:
- ".github/workflows/*"
- "pymc_experimental/**"
- "pymc_extras/**"
- "tests/**"
- "setup.py"
- "pyproject.toml"
Expand Down Expand Up @@ -37,16 +37,16 @@ jobs:
environment-file: conda-envs/environment-test.yml
create-args: >-
python=${{matrix.python-version}}
environment-name: pymc-experimental-test
environment-name: pymc-extras-test
init-shell: bash
cache-environment: true
- name: Install pymc-experimental
- name: Install pymc-extras
run: |
pip install -e .
python --version
- name: Run tests
run: |
python -m pytest -vv --cov=pymc_experimental --cov-append --cov-report=xml --cov-report term --durations=50 $TEST_SUBSET
python -m pytest -vv --cov=pymc_extras --cov-append --cov-report=xml --cov-report term --durations=50 $TEST_SUBSET
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v2
with:
Expand Down Expand Up @@ -76,18 +76,18 @@ jobs:
micromamba-version: "1.5.10-0" # Until https://github.com/mamba-org/mamba/issues/3467 is not fixed
create-args: >-
python=${{matrix.python-version}}
environment-name: pymc-experimental-test
environment-name: pymc-extras-test
init-shell: cmd.exe
cache-environment: true
- name: Install pymc-experimental
- name: Install pymc-extras
run: |
pip install -e .
python --version
- name: Run tests
# This job uses a cmd shell, therefore the environment variable syntax is different!
# The ">-" in the next line replaces newlines with spaces (see https://stackoverflow.com/a/66809682).
run: >-
python -m pytest -vv --cov=pymc_experimental --cov-append --cov-report=xml --cov-report term --durations=50 %TEST_SUBSET%
python -m pytest -vv --cov=pymc_extras --cov-append --cov-report=xml --cov-report term --durations=50 %TEST_SUBSET%
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v2
with:
Expand Down
6 changes: 3 additions & 3 deletions .gitpod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ tasks:
- name: initialize
init: |
mkdir -p .vscode
echo '{"python.defaultInterpreterPath": "/workspace/pymc-experimental/env/bin/python"}' > .vscode/settings.json
echo '{"python.defaultInterpreterPath": "/workspace/pymc-extras/env/bin/python"}' > .vscode/settings.json
conda init bash && source ~/.bashrc
conda env update -f conda-envs/environment-test.yml -p env
conda activate /workspace/pymc-experimental/env
conda activate /workspace/pymc-extras/env
pip install -r requirements-dev.txt
pip install -e .
command: |
conda init bash && echo "conda activate /workspace/pymc-experimental/env" >> ~/.bashrc && source ~/.bashrc
conda init bash && echo "conda activate /workspace/pymc-extras/env" >> ~/.bashrc && source ~/.bashrc

vscode:
extensions:
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ repos:
hooks:
- id: no-print-statements
exclude: _version.py
files: ^pymc_experimental/
files: ^pymc_extras/
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Contributing guide

Page in construction, for now go to https://github.com/pymc-devs/pymc-experimental#questions.
Page in construction, for now go to https://github.com/pymc-devs/pymc-extras#questions.
3 changes: 2 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
include requirements*.txt
include *.md *.rst
include LICENSE
include pymc_experimental/version.txt
include README.md
include pymc_extras/version.txt
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
# Welcome to `pymc-experimental`
<a href="https://gitpod.io/#https://github.com/pymc-devs/pymc-experimental">
# Welcome to `pymc-extras`
<a href="https://gitpod.io/#https://github.com/pymc-devs/pymc-extras">
<img
src="https://img.shields.io/badge/Contribute%20with-Gitpod-908a85?logo=gitpod"
alt="Contribute with Gitpod"
/>
</a>
<img
src="https://codecov.io/gh/pymc-devs/pymc-experimental/branch/main/graph/badge.svg"
src="https://codecov.io/gh/pymc-devs/pymc-extras/branch/main/graph/badge.svg"
alt="Codecov Badge"
/>

As PyMC continues to mature and expand its functionality to accommodate more domains of application, we increasingly see cutting-edge methodologies, highly specialized statistical distributions, and complex models appear.
While this adds to the functionality and relevance of the project, it can also introduce instability and impose a burden on testing and quality control.
To reduce the burden on the main `pymc` repository, this `pymc-experimental` repository can become the aggregator and testing ground for new additions to PyMC.
To reduce the burden on the main `pymc` repository, this `pymc-extras` repository can become the aggregator and testing ground for new additions to PyMC.
This may include unusual probability distributions, advanced model fitting algorithms, innovative yet not fully tested methods or any code that may be inappropriate to include in the `pymc` repository, but may want to be made available to users.

The `pymc-experimental` repository can be understood as the first step in the PyMC development pipeline, where all novel code is introduced until it is obvious that it belongs in the main repository.
The `pymc-extras` repository can be understood as the first step in the PyMC development pipeline, where all novel code is introduced until it is obvious that it belongs in the main repository.
We hope that this organization improves the stability and streamlines the testing overhead of the `pymc` repository, while allowing users and developers to test and evaluate cutting-edge methods and not yet fully mature features.

`pymc-experimental` would be designed to mirror the namespaces in `pymc` to make usage and migration as easy as possible.
`pymc-extras` would be designed to mirror the namespaces in `pymc` to make usage and migration as easy as possible.
For example, a `ParabolicFractal` distribution could be used analogously to those in `pymc`:

```python
import pymc as pm
import pymc_experimental as pmx
import pymc_extras as pmx

with pm.Model():

Expand All @@ -35,23 +35,23 @@ with pm.Model():

## Questions

### What belongs in `pymc-experimental`?
### What belongs in `pymc-extras`?

- newly-implemented statistical methods, for example step methods or model construction helpers
- distributions that are tricky to sample from or test
- infrequently-used fitting methods or distributions
- any code that requires additional optimization before it can be used in practice


### What does not belong in `pymc-experimental`?
### What does not belong in `pymc-extras`?
- Case studies
- Implementations that cannot be applied generically, for example because they are tied to variables from a toy example


### Should there be more than one add-on repository?

Since there is a lot of code that we may not want in the main repository, does it make sense to have more than one additional repository?
For example, `pymc-experimental` may just include methods that are not fully developed, tested and trusted, while code that is known to work well and has adequate test coverage, but is still too specialized to become part of `pymc` could reside in a `pymc-extras` (or similar) repository.
For example, `pymc-extras` may just include methods that are not fully developed, tested and trusted, while code that is known to work well and has adequate test coverage, but is still too specialized to become part of `pymc` could reside in a `pymc-extras` (or similar) repository.


### Unanswered questions & ToDos
Expand Down
2 changes: 1 addition & 1 deletion conda-envs/environment-test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: pymc-experimental-test
name: pymc-extras-test
channels:
- conda-forge
- nodefaults
Expand Down
2 changes: 1 addition & 1 deletion conda-envs/windows-environment-test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: pymc-experimental-test
name: pymc-extras-test
channels:
- conda-forge
- defaults
Expand Down
14 changes: 7 additions & 7 deletions docs/api_reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Model
This reference provides detailed documentation for all modules, classes, and
methods in the current release of PyMC experimental.

.. currentmodule:: pymc_experimental
.. currentmodule:: pymc_extras
.. autosummary::
:toctree: generated/

Expand All @@ -19,7 +19,7 @@ methods in the current release of PyMC experimental.
Inference
=========

.. currentmodule:: pymc_experimental.inference
.. currentmodule:: pymc_extras.inference
.. autosummary::
:toctree: generated/

Expand All @@ -29,7 +29,7 @@ Inference
Distributions
=============

.. currentmodule:: pymc_experimental.distributions
.. currentmodule:: pymc_extras.distributions
.. autosummary::
:toctree: generated/

Expand All @@ -47,7 +47,7 @@ Distributions
Utils
=====

.. currentmodule:: pymc_experimental.utils
.. currentmodule:: pymc_extras.utils
.. autosummary::
:toctree: generated/

Expand All @@ -57,7 +57,7 @@ Utils

Statespace Models
=================
.. automodule:: pymc_experimental.statespace
.. automodule:: pymc_extras.statespace
.. toctree::
:maxdepth: 1

Expand All @@ -68,7 +68,7 @@ Statespace Models

Model Transforms
================
.. automodule:: pymc_experimental.model.transforms
.. automodule:: pymc_extras.model.transforms
.. autosummary::
:toctree: generated/

Expand All @@ -78,7 +78,7 @@ Model Transforms

Printing
========
.. currentmodule:: pymc_experimental.printing
.. currentmodule:: pymc_extras.printing
.. autosummary::
:toctree: generated/

Expand Down
24 changes: 12 additions & 12 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,18 @@
import os
import sys

import pymc_experimental # isort:skip
import pymc_extras # isort:skip

sys.path.insert(0, os.path.abspath("../"))

# -- Project information -----------------------------------------------------

project = "pymc_experimental"
project = "pymc_extras"
copyright = "2022, pymc-devs"
author = "pymc-devs"

# The short X.Y version
version = pymc_experimental.__version__
version = pymc_extras.__version__
# The full version, including alpha/beta/rc tags
release = version

Expand Down Expand Up @@ -118,7 +118,7 @@
}
html_context = {
"github_user": "pymc-devs",
"github_repo": "pymc-experimental",
"github_repo": "pymc-extras",
"github_version": "main",
"doc_path": "docs",
"default_mode": "light",
Expand All @@ -133,7 +133,7 @@
# -- Options for HTMLHelp output ---------------------------------------------

# Output file base name for HTML help builder.
htmlhelp_basename = "pymc_experimentaldoc"
htmlhelp_basename = "pymc_extrasdoc"


# -- Options for LaTeX output ------------------------------------------------
Expand All @@ -159,9 +159,9 @@
latex_documents = [
(
master_doc,
"pymc_experimental.tex",
"pymc_experimental Documentation",
"The developers of pymc_experimental",
"pymc_extras.tex",
"pymc_extras Documentation",
"The developers of pymc_extras",
"manual",
),
]
Expand All @@ -171,7 +171,7 @@

# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [(master_doc, "pymc_experimental", "pymc_experimental Documentation", [author], 1)]
man_pages = [(master_doc, "pymc_extras", "pymc_extras Documentation", [author], 1)]


# -- Options for Texinfo output ----------------------------------------------
Expand All @@ -182,10 +182,10 @@
texinfo_documents = [
(
master_doc,
"pymc_experimental",
"pymc_experimental Documentation",
"pymc_extras",
"pymc_extras Documentation",
author,
"pymc_experimental",
"pymc_extras",
"One line description of project.",
"Miscellaneous",
),
Expand Down
20 changes: 10 additions & 10 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
PyMC experimental
PyMC Extras
===================================================
|Tests|
|Coverage|
|Black|


.. |Tests| image:: https://github.com/pymc-devs/pymc-experimental/actions/workflows/test.yml/badge.svg
:target: https://github.com/pymc-devs/pymc-experimental
.. |Tests| image:: https://github.com/pymc-devs/pymc-extras/actions/workflows/test.yml/badge.svg
:target: https://github.com/pymc-devs/pymc-extras

.. |Coverage| image:: https://codecov.io/gh/pymc-devs/pymc-experimental/branch/main/graph/badge.svg?token=ZqH0KCLKAE
:target: https://codecov.io/gh/pymc-devs/pymc-experimental
.. |Coverage| image:: https://codecov.io/gh/pymc-devs/pymc-extras/branch/main/graph/badge.svg?token=ZqH0KCLKAE
:target: https://codecov.io/gh/pymc-devs/pymc-extras

.. |Black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/ambv/black
Expand All @@ -21,25 +21,25 @@ Where we grow the next batch of cool PyMC features
Installation
============

To install the latest release on [PyPI](https://pypi.org/project/pymc-experimental/), you can use a package manager like pip:
To install the latest release on [PyPI](https://pypi.org/project/pymc-extras/), you can use a package manager like pip:

.. code-block:: bash

pip install pymc-experimental
pip install pymc-extras

For the development version, you can install directly from GitHub:

.. code-block:: bash

pip install git+https://github.com/pymc-devs/pymc-experimental.git
pip install git+https://github.com/pymc-devs/pymc-extras.git

Contributing
============
We welcome contributions from interested individuals or groups! For information about contributing to PyMC experimental check out our instructions, policies, and guidelines `here <https://github.com/pymc-devs/pymc-experimental/blob/main/CONTRIBUTING.md>`_.
We welcome contributions from interested individuals or groups! For information about contributing to PyMC Extras check out our instructions, policies, and guidelines `here <https://github.com/pymc-devs/pymc-extras/blob/main/CONTRIBUTING.md>`_.

Contributors
============
See the `GitHub contributor page <https://github.com/pymc-devs/pymc-experimental/graphs/contributors>`_.
See the `GitHub contributor page <https://github.com/pymc-devs/pymc-extras/graphs/contributors>`_.

.. toctree::
:hidden:
Expand Down
2 changes: 1 addition & 1 deletion docs/statespace/core.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Statespace Core
********************

.. automodule:: pymc_experimental.statespace.core
.. automodule:: pymc_extras.statespace.core
.. autosummary::
:toctree: generated

Expand Down
Loading
Loading