diff --git a/setup.py b/setup.py index ccf8063..07fe4e7 100644 --- a/setup.py +++ b/setup.py @@ -1 +1,90 @@ -## include setup here once it's ready \ No newline at end of file +# Inspired by: +# https://hynek.me/articles/sharing-your-labor-of-love-pypi-quick-and-dirty/ + +import codecs +import os +import re + +from setuptools import find_packages, setup + +################################################################### + +NAME = "cortecs" +PACKAGES = find_packages(where="src") +META_PATH = os.path.join("src", NAME, "__init__.py") +CLASSIFIERS = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "Natural Language :: English", + "License :: OSI Approved :: MIT License", + "Programming Language :: Python", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Topic :: Scientific/Engineering :: Astronomy", +] +# todo: pin to requirements +INSTALL_REQUIRES = [ + "numpy", + "scipy", + "jaxlib", + "jax", + "tqdm", + "h5py", + "tensorflow", + "keras", + "matplotlib", +] + +################################################################### + +HERE = os.path.abspath(os.path.dirname(__file__)) + + +def read(*parts): + """ + Build an absolute path from *parts* and and return the contents of the + resulting file. Assume UTF-8 encoding. + """ + with codecs.open(os.path.join(HERE, *parts), "rb", "utf-8") as f: + return f.read() + + +META_FILE = read(META_PATH) + + +def find_meta(meta): + """ + Extract __*meta*__ from META_FILE. + """ + meta_match = re.search( + r"^__{meta}__ = ['\"]([^'\"]*)['\"]".format(meta=meta), META_FILE, re.M + ) + if meta_match: + return meta_match.group(1) + raise RuntimeError("Unable to find __{meta}__ string.".format(meta=meta)) + + +if __name__ == "__main__": + setup( + name=NAME, + description=find_meta("description"), + license=find_meta("license"), + url=find_meta("uri"), + version=find_meta("version"), + author=find_meta("author"), + author_email=find_meta("email"), + maintainer=find_meta("author"), + maintainer_email=find_meta("email"), + package_data={"": ["README.md", "LICENSE"]}, + long_description=read("README.md"), + long_description_content_type="text/markdown", + packages=PACKAGES, + package_dir={"": "src"}, + zip_safe=False, + python_requires=">3.8.0", + classifiers=CLASSIFIERS, + include_package_data=True, + install_requires=INSTALL_REQUIRES, + options={"bdist_wheel": {"universal": "1"}}, + ) \ No newline at end of file diff --git a/src/cortecs/fit/fit.py b/src/cortecs/fit/fit.py index c81b64b..38135b6 100644 --- a/src/cortecs/fit/fit.py +++ b/src/cortecs/fit/fit.py @@ -1,9 +1,9 @@ """ The high-level API for fitting. Requires the Opac function. """ -from fit_pca import * -from fit_neural_net import * -from fit_polynomial import * +from cortecs.fit_pca import * +from cortecs.fit_neural_net import * +from cortecs.fit_polynomial import * from tqdm import tqdm import warnings from multiprocessing import Pool diff --git a/src/cortecs/opac/opac.py b/src/cortecs/opac/opac.py index 3add50f..a950500 100644 --- a/src/cortecs/opac/opac.py +++ b/src/cortecs/opac/opac.py @@ -3,7 +3,7 @@ author: @arjunsavel """ -from io import * +from cortecs.io import * class Opac(object): """