diff --git a/CHANGELOG.md b/CHANGELOG.md index fcdcaf7..1e5237a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,13 +14,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] + + +## [0.1.1] - 2023-11-07 #### Added Features and Improvements 🙌 - Add python 3.12 support +#### Other changes: +- Slightly improved Readme and docs + ## [0.1.0] - 2023-09-13 - Initial release 🎉 -[Unreleased]: https://github.com/moldyn/normi/compare/v0.1.0...main +[Unreleased]: https://github.com/moldyn/normi/compare/v0.1.1...main +[0.1.1]: https://github.com/moldyn/normi/compare/v0.1.0...v0.1.1 [0.1.0]: https://github.com/moldyn/normi/tree/v0.1.0 diff --git a/README.md b/README.md index 56d9672..1668625 100644 --- a/README.md +++ b/README.md @@ -30,15 +30,15 @@

- Docs • + Docs • Features • Installation • Usage • - FAQ + FAQ

-# NorMI: Nonparametric Normalized Mutual Information Estimator Based on $k$-NN Statistics +# NorMI: Nonparametric Normalized Mutual Information Estimator Based on *k*-NN Statistics This software provides an extension to the Kraskov-Estimator to allow normalizing the mutual information. The method will be published soon as: @@ -51,10 +51,9 @@ If you use this software package, please cite the above mentioned paper. - Intuitive usage via [module](#module---inside-a-python-script) and via [CI](#ci---usage-directly-from-the-command-line) - Sklearn-style API for fast integration into your Python workflow - No magic, only a single parameter which can be optimized via cross-validation -- Extensive [documentation](https://moldyn.github.io/normi) and detailed discussion in publication +- Extensive [documentation](https://moldyn.github.io/NorMI) and detailed discussion in publication ## Installation - -The package is not yet published and only available directly from github ```bash # via ssh key -python3 -m pip install git+ssh://git@github.com/moldyn/normi.git +python3 -m pip install git+ssh://git@github.com/moldyn/NorMI.git # or via password-based login -python3 -m pip install git+https://github.com/moldyn/normi.git +python3 -m pip install git+https://github.com/moldyn/NorMI.git ``` ### Shell Completion @@ -86,10 +83,16 @@ In general one can call the module directly by its entry point `$ normi` or by c ### CI - Usage Directly from the Command Line The module brings a rich CI using [click](https://click.palletsprojects.com). -Each module and submodule contains a detailed help, which can be accessed by -... +For a complete list of all options please see the +[docs](https://moldyn.github.io/NorMI/reference/cli/). +```bash +python -m normi / + --input input_file / # ascii file of shape (n_samples, n_features) + --output output_file / # creates ascii file of shape (n_features, n_features) + --n-dims / # this allows to treat every n_dims columns as a high dimensional feature + --verbose -tba +``` ### Module - Inside a Python Script ```python @@ -99,6 +102,6 @@ from normi import NormalizedMI # X is np.ndarray of shape (n_samples, n_features) nmi = NormalizedMI() -nmi.fit(X) +nmi_matrix = nmi.fit_transform(X) ... ``` diff --git a/docs/contributing.md b/docs/contributing.md index b091d60..0c91437 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -22,7 +22,7 @@ If you want to request a change, you first have to [fork the repository](https:/ === "bash + conda" ``` bash - conda create -n normi -c conda-forge python + conda create -n normi -c conda-forge python=3.12 conda activate normi python -m pip install -e .[all] ``` @@ -38,7 +38,7 @@ If you want to request a change, you first have to [fork the repository](https:/ === "zsh + conda" ``` zsh - conda create -n normi -c conda-forge python + conda create -n normi -c conda-forge python=3.12 conda activate normi python -m pip install -e .\[all] ``` diff --git a/docs/maintenance.md b/docs/maintenance.md index 62ed403..afd8315 100644 --- a/docs/maintenance.md +++ b/docs/maintenance.md @@ -5,15 +5,23 @@ This guide will give you an overview of how to publish a new version of normi. I ## Prepare New Release Please ensure that, + 1. the version number in `setup.py` and `src/normi/__init__.py` are bumped, 1. a new tag is created via `git tag v0.*.*` and pushed `git push --tags`, and 1. the changelog includes the new tag and all changes of the release. +As an example see for e.g. the commit of `v0.1.1`, [`c2582ed`](https://github.com/moldyn/NorMI/commit/c2582ed). + ## Upload to PyPI There is an CI to publish new versions automatically. Therefore, a new release needs to be published. Please ensure that each release is based on a tag. +## Build and Upload to PyPI (preferred) + +It is as simple as creating a new release from the new tag. The Github action +will do the rest. + ## Build and Upload to PyPI (admin only) For an introduction, please take a look at the [PyPI manual](https://packaging.python.org/en/latest/tutorials/packaging-projects/). diff --git a/setup.py b/setup.py index b7052ef..47feea8 100644 --- a/setup.py +++ b/setup.py @@ -58,7 +58,7 @@ def remove_gh_dark_mode_only_tags(text, tag='#gh-dark-mode-only'): # This call to setup() does all the work setuptools.setup( name='normi', - version='0.1.0', + version='0.1.1', description='Estimator for Normalized Mutual Information', long_description=README, long_description_content_type='text/markdown', diff --git a/src/normi/__init__.py b/src/normi/__init__.py index 576e27a..9f72616 100644 --- a/src/normi/__init__.py +++ b/src/normi/__init__.py @@ -8,4 +8,4 @@ from ._estimators import NormalizedMI -__version__ = '0.1.0' +__version__ = '0.1.1'