enbid-ananke 0.3.0__cp310-cp310-manylinux_2_39_x86_64.whl

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 (68) hide show
  1. .cpython-310-x86_64-linux-gnu.so +0 -0
  2. enbid_ananke/Enbid-2.0/.DS_Store +0 -0
  3. enbid_ananke/Enbid-2.0/COPYING +341 -0
  4. enbid_ananke/Enbid-2.0/COPYRIGHT +18 -0
  5. enbid_ananke/Enbid-2.0/Documentation/enbid.pdf +0 -0
  6. enbid_ananke/Enbid-2.0/Documentation/users-guide.pdf +0 -0
  7. enbid_ananke/Enbid-2.0/Documentation/users-guide.tex +679 -0
  8. enbid_ananke/Enbid-2.0/Documentation/users-guide.tex.flc +4 -0
  9. enbid_ananke/Enbid-2.0/Enbid +0 -0
  10. enbid_ananke/Enbid-2.0/Examples/hernquist1_small/snapshot_ici +0 -0
  11. enbid_ananke/Enbid-2.0/Examples/hernquist1_small/snapshot_ici_typelist +2 -0
  12. enbid_ananke/Enbid-2.0/Examples/uniform_6d_box_4/snapshot_ici +0 -0
  13. enbid_ananke/Enbid-2.0/Examples/uniform_6d_box_4/snapshot_ici_3d.ascii +10000 -0
  14. enbid_ananke/Enbid-2.0/Examples/uniform_6d_box_4/snapshot_ici_6d.ascii +10000 -0
  15. enbid_ananke/Enbid-2.0/parameterfiles/myparameterfile1 +37 -0
  16. enbid_ananke/Enbid-2.0/parameterfiles/myparameterfile2 +37 -0
  17. enbid_ananke/Enbid-2.0/parameterfiles/myparameterfile3 +37 -0
  18. enbid_ananke/Enbid-2.0/parameterfiles/myparameterfile4 +37 -0
  19. enbid_ananke/Enbid-2.0/periodic_lengths.txt +5 -0
  20. enbid_ananke/Enbid-2.0/src/Makefile +43 -0
  21. enbid_ananke/Enbid-2.0/src/allocate.cpp +47 -0
  22. enbid_ananke/Enbid-2.0/src/allocate.o +0 -0
  23. enbid_ananke/Enbid-2.0/src/allvars.cpp +62 -0
  24. enbid_ananke/Enbid-2.0/src/allvars.h +263 -0
  25. enbid_ananke/Enbid-2.0/src/allvars.o +0 -0
  26. enbid_ananke/Enbid-2.0/src/begrun.cpp +361 -0
  27. enbid_ananke/Enbid-2.0/src/begrun.o +0 -0
  28. enbid_ananke/Enbid-2.0/src/density_nd.cpp +130 -0
  29. enbid_ananke/Enbid-2.0/src/density_nd.o +0 -0
  30. enbid_ananke/Enbid-2.0/src/functions.cpp +256 -0
  31. enbid_ananke/Enbid-2.0/src/functions.h +20 -0
  32. enbid_ananke/Enbid-2.0/src/functions.o +0 -0
  33. enbid_ananke/Enbid-2.0/src/init.cpp +299 -0
  34. enbid_ananke/Enbid-2.0/src/init.o +0 -0
  35. enbid_ananke/Enbid-2.0/src/io.cpp +255 -0
  36. enbid_ananke/Enbid-2.0/src/io.o +0 -0
  37. enbid_ananke/Enbid-2.0/src/main.cpp +108 -0
  38. enbid_ananke/Enbid-2.0/src/main.o +0 -0
  39. enbid_ananke/Enbid-2.0/src/ngb_search.cpp +2315 -0
  40. enbid_ananke/Enbid-2.0/src/ngb_search.h +35 -0
  41. enbid_ananke/Enbid-2.0/src/ngb_search.o +0 -0
  42. enbid_ananke/Enbid-2.0/src/nr.cpp +186 -0
  43. enbid_ananke/Enbid-2.0/src/nr.h +13 -0
  44. enbid_ananke/Enbid-2.0/src/nr.o +0 -0
  45. enbid_ananke/Enbid-2.0/src/proto.h +22 -0
  46. enbid_ananke/Enbid-2.0/src/read_ic.cpp +434 -0
  47. enbid_ananke/Enbid-2.0/src/read_ic.o +0 -0
  48. enbid_ananke/Enbid-2.0/src/tree.cpp +973 -0
  49. enbid_ananke/Enbid-2.0/src/tree.h +34 -0
  50. enbid_ananke/Enbid-2.0/src/tree.o +0 -0
  51. enbid_ananke/Enbid-2.0/src/tree_search.cpp +597 -0
  52. enbid_ananke/Enbid-2.0/src/tree_search.o +0 -0
  53. enbid_ananke/__init__.py +318 -0
  54. enbid_ananke/__license__/LICENSE +339 -0
  55. enbid_ananke/__license__/__init__.py +9 -0
  56. enbid_ananke/__metadata__.py +160 -0
  57. enbid_ananke/_builtin_utils.py +62 -0
  58. enbid_ananke/_constants.py +56 -0
  59. enbid_ananke/_defaults.py +36 -0
  60. enbid_ananke/_name.py +10 -0
  61. enbid_ananke/_templates.py +71 -0
  62. enbid_ananke/_version.py +21 -0
  63. enbid_ananke/utils.py +11 -0
  64. enbid_ananke-0.3.0.dist-info/METADATA +44 -0
  65. enbid_ananke-0.3.0.dist-info/RECORD +68 -0
  66. enbid_ananke-0.3.0.dist-info/WHEEL +5 -0
  67. enbid_ananke-0.3.0.dist-info/licenses/LICENSE +339 -0
  68. enbid_ananke-0.3.0.dist-info/top_level.txt +2 -0
@@ -0,0 +1,160 @@
1
+ #!/usr/bin/env python
2
+ """
3
+ Contains the EnBiD module metadata.
4
+ """
5
+ import _sitebuiltins
6
+ import textwrap
7
+ from typing import Final
8
+ from datetime import datetime
9
+
10
+ from . import _version
11
+
12
+ try:
13
+ from .__license__ import __license_full__
14
+ except ImportError:
15
+ __license_full__ = ""
16
+
17
+ __all__ = ['__project__', '__description__', '__url__', '__year__', '__author__', '__contributors__', '__license__',
18
+ '__version__', '__date__', '__maintainer__', '__email__', '__classifiers__',
19
+ '__credits__', '__doi__', '__citation__', '__adsurl__', '__bibtex__', '__copyright__', '__readme__',
20
+ 'copyright', 'credits', 'license', 'readme']
21
+
22
+ # PROJECT METADATA
23
+ __project__ = "py-EnBiD-ananke"
24
+ __description__ = "Python wrapper for EnBiD (Sharma & Steinmetz 2011 <http://ascl.net/1109.012>) for py-ananke <https://github.com/athob/py-ananke>."
25
+ __url__ = "https://github.com/athob/py-EnBiD-ananke"
26
+ __year__ = 2022
27
+ __author__ = "Adrien Thob"
28
+ __contributors__ = ["Robyn Sanderson", "Andrew Eden"]
29
+ __supporters__ = ["Sanjib Sharma"]
30
+ __feedback__ = ["the extended Galaxy Dynamics @ UPenn group", "the participants of the \"anankethon\" workshops"]
31
+ __license__ = "GNU General Public License v2 or later (GPLv2+)" # TODO change to longer version?
32
+ __license_classifier__ = "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)"
33
+ __license_short__ = "Licensed under the GNU GPL v2 or later"
34
+
35
+ # SOFTWARE METADATA
36
+ __version__: Final[str] = _version.get_versions()['version']
37
+ __date__: str = _version.get_versions()['date']
38
+ __date__: datetime = datetime.fromisoformat(f"{__date__[:-2]}:{__date__[-2:]}")
39
+ __maintainer__ = "Adrien Thob"
40
+ __email__ = "athob@sas.upenn.edu"
41
+ __status_classifier__ = "Development Status :: 5 - Production/Stable"
42
+ __classifiers__ = [
43
+ __status_classifier__,
44
+ "Environment :: Console",
45
+ "Intended Audience :: Science/Research",
46
+ __license_classifier__,
47
+ "Natural Language :: English",
48
+ "Operating System :: Unix",
49
+ "Programming Language :: Python :: 3",
50
+ "Topic :: Scientific/Engineering :: Astronomy"
51
+ ]
52
+
53
+ # CREDITS METADATA
54
+ __credits__ = textwrap.fill(f"""
55
+ Thanks to {', '.join(__contributors__)[::-1].replace(',','& ', 1)[::-1]} for their contributions,
56
+ to {', '.join(__supporters__)[::-1].replace(',','& ', 1)[::-1]} for their support & guidance,
57
+ and to the wider community for their suggestions and feedback,
58
+ including {', '.join(__feedback__)[::-1].replace(',','& ', 1)[::-1]}.
59
+ """.strip('\n'))
60
+
61
+ # CITING METADATA
62
+ __doi__ = "10.21105/joss.06234"
63
+ __citation__ = textwrap.fill("""
64
+ Thob, Adrien C. R. et al. 2024, “Generating synthetic star catalogs
65
+ from simulated data for next-gen observatories with py-ananke”,
66
+ The Journal of Open Source Software, 9, 6234, doi:10.21105/joss.06234.
67
+ """.strip('\n'))
68
+ __adsurl__ = "https://ui.adsabs.harvard.edu/abs/2024JOSS....9.6234T"
69
+ __adsexportcitation__ = f"{__adsurl__}/exportcitation"
70
+ __bibtex__ = """
71
+ @ARTICLE{2024JOSS....9.6234T,
72
+ author = {{Thob}, Adrien C.~R. and {Sanderson}, Robyn E. and
73
+ {Eden}, Andrew P. and {Nikakhtar}, Farnik and
74
+ {Panithanpaisal}, Nondh and {Garavito-Camargo}, Nicol{\\'a}s
75
+ and {Sharma}, Sanjib},
76
+ title = "{Generating synthetic star catalogs from simulated data
77
+ for next-gen observatories with py-ananke}",
78
+ journal = {The Journal of Open Source Software},
79
+ keywords = {C++, astronomy, galaxies, stars, simulations,
80
+ mock observations, Jupyter Notebook, Python,
81
+ Astrophysics - Astrophysics of Galaxies,
82
+ Astrophysics - Instrumentation and Methods for Astrophysics},
83
+ year = 2024,
84
+ month = oct,
85
+ volume = {9},
86
+ number = {102},
87
+ eid = {6234},
88
+ pages = {6234},
89
+ doi = {10.21105/joss.06234},
90
+ archivePrefix = {arXiv},
91
+ eprint = {2312.02268},
92
+ primaryClass = {astro-ph.GA},
93
+ adsurl = {https://ui.adsabs.harvard.edu/abs/2024JOSS....9.6234T},
94
+ adsnote = {Provided by the SAO/NASA Astrophysics Data System}
95
+ }
96
+ """.strip('\n')
97
+ __citing__ = '\n\n'.join(map(textwrap.fill, f"""
98
+ If {__project__} has played a role in your research project or software
99
+ development, we kindly request that you acknowledge and cite the
100
+ project. Citing {__project__} not only gives credit to the dedicated
101
+ efforts of its creators but also helps others discover and benefit
102
+ from this software.
103
+
104
+ To cite {__project__}, please use DOI {__doi__} as a
105
+ reference in your publications, or cite as the following:
106
+
107
+ {{__citation__}}
108
+
109
+ Alternatively, you may use one of the entries associated with
110
+ {__project__} as listed by The SAO/NASA Astrophysics Data System:
111
+ <{__adsexportcitation__}>
112
+ such as the following BibTeX entry:
113
+
114
+ {{__bibtex__}}
115
+ """.strip('\n').split('\n\n'))).format(__citation__=__citation__, __bibtex__=__bibtex__)
116
+
117
+ # COPYRIGHT METADATA
118
+ __copyright_short__ = f"Copyright (C) {__year__}-{__date__.year} {__author__}"
119
+ __copyright__ = f"""
120
+ {textwrap.fill(f"{__project__} v{__version__}: {__description__}")}
121
+
122
+ {__copyright_short__}
123
+
124
+ This program is free software; you can redistribute it and/or modify
125
+ it under the terms of the GNU General Public License as published by
126
+ the Free Software Foundation; either version 2 of the License, or
127
+ (at your option) any later version.
128
+
129
+ This program is distributed in the hope that it will be useful,
130
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
131
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
132
+ GNU General Public License for more details.
133
+
134
+ You should have received a copy of the GNU General Public License along
135
+ with this program; if not, write to the Free Software Foundation, Inc.,
136
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
137
+
138
+ --CITING-------------------------------------------------------------
139
+
140
+ {__citing__}
141
+ """.strip('\n')
142
+
143
+ # README
144
+ __readme__ = f"""
145
+ {__copyright__}
146
+
147
+ --CREDITS------------------------------------------------------------
148
+
149
+ {__credits__}
150
+ """.strip('\n')
151
+
152
+ # DEFINING PRINTERS
153
+ copyright = _sitebuiltins._Printer('copyright', __copyright__)
154
+ credits = _sitebuiltins._Printer('credits', __credits__)
155
+ license = _sitebuiltins._Printer('license', __license_full__)
156
+ readme = _sitebuiltins._Printer('readme', __readme__)
157
+
158
+
159
+ if __name__ == '__main__':
160
+ raise NotImplementedError()
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env python
2
+ """
3
+ Module utilities using built-in implementation
4
+ """
5
+ import sys
6
+ from types import ModuleType
7
+ import subprocess
8
+ import importlib.util
9
+ import re
10
+
11
+ __all__ = ['Singleton', 'execute', 'get_version_of_command', 'import_source_file']
12
+
13
+
14
+ class Singleton(type):
15
+ """
16
+ Singleton metaclass.
17
+ Credit https://stackoverflow.com/q/6760685
18
+ """
19
+ _instances = {}
20
+ def __call__(cls, *args, **kwargs):
21
+ if cls not in cls._instances:
22
+ cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
23
+ return cls._instances[cls]
24
+
25
+
26
+ def _execute_generator(args, **kwargs):
27
+ popen = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True, **kwargs)
28
+ for stdout_line in iter(popen.stdout.readline, ""):
29
+ yield stdout_line
30
+ popen.stdout.close()
31
+ return_code = popen.wait()
32
+ if return_code:
33
+ raise subprocess.CalledProcessError(return_code, args)
34
+
35
+
36
+ def execute(args, verbose=True, **kwargs):
37
+ """
38
+ Run the command described by args, and use
39
+ verbose kwarg to redirect output/error stream
40
+ to python output stream.
41
+ Credit https://stackoverflow.com/a/4417735
42
+ """
43
+ for path in _execute_generator(args, **kwargs):
44
+ print(path, end="") if verbose else None
45
+
46
+
47
+ def get_version_of_command(cmd):
48
+ return re.findall("((?:[0-9]+\.)+[0-9]+)",
49
+ str(subprocess.check_output([cmd, '--version'])))[0]
50
+
51
+
52
+ def import_source_file(module_name, file_path) -> ModuleType:
53
+ # based on https://docs.python.org/3/library/importlib.html#importing-a-source-file-directly
54
+ spec = importlib.util.spec_from_file_location(module_name, file_path)
55
+ module = importlib.util.module_from_spec(spec)
56
+ sys.modules[module_name] = module
57
+ spec.loader.exec_module(module)
58
+ return module
59
+
60
+
61
+ if __name__ == '__main__':
62
+ raise NotImplementedError()
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env python
2
+ """
3
+ Contains the EnBiD module constants.
4
+ """
5
+ import pathlib
6
+ from dataclasses import dataclass
7
+
8
+ from ._name import *
9
+ from ._builtin_utils import Singleton
10
+
11
+ __all__ = ['NAME', 'LOG_DIR', 'SRC_DIR', 'ENBID_URL', 'CONSTANTS', 'SNAPSHOT_FILEBASE', 'ENBID_OUT_EXT', 'HASH_EXT', 'HASH_ENCODING']
12
+
13
+ ENBID2 = 'Enbid-2.0'
14
+ ENBID_URL = 'https://sourceforge.net/projects/enbid/files/latest/download'
15
+ ENBID_EXEC = 'Enbid'
16
+ LOG_DIR = 'log'
17
+ SRC_DIR = 'src'
18
+
19
+ ENBID_PARAMFILE = 'enbid_paramfile'
20
+ USEDVALUES_SUFFIX = '_enbid-usedvalues'
21
+ SNAPSHOT_FILEBASE = 'SnapshotFileBase'
22
+ ENBID_OUT_EXT = 'est'
23
+ HASH_EXT = 'hash'
24
+ HASH_ENCODING = 'ascii'
25
+
26
+ @dataclass()
27
+ class Constants(metaclass=Singleton):
28
+ enbid2: str = ENBID2
29
+ enbid_exec: str = ENBID_EXEC
30
+ _enbid: pathlib.Path = None
31
+ enbid_paramfile: str = ENBID_PARAMFILE
32
+
33
+ @property
34
+ def enbid_cpp(self):
35
+ return pathlib.Path(__file__).resolve().parent / self.enbid2
36
+
37
+ @property
38
+ def enbid(self):
39
+ if isinstance(self._enbid, pathlib.Path):
40
+ return self._enbid
41
+ else:
42
+ return self.enbid_cpp / self.enbid_exec
43
+
44
+ @enbid.setter
45
+ def enbid(self, path: pathlib.Path):
46
+ self._enbid = path
47
+
48
+ @property
49
+ def usedvalues(self):
50
+ return f"{self.enbid_paramfile}{USEDVALUES_SUFFIX}"
51
+
52
+ CONSTANTS = Constants()
53
+
54
+
55
+ if __name__ == '__main__':
56
+ raise NotImplementedError()
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env python
2
+ """
3
+ Contains the EnBiD module defaults.
4
+ """
5
+ import tempfile
6
+
7
+ from ._templates import *
8
+
9
+ __all__ = ['DEFAULT_NGB', 'DEFAULT_FOR_PARAMFILE']
10
+
11
+ TO_ENBID_FILENAME = 'to_enbid'
12
+ DEFAULT_NGB = 64
13
+
14
+ DEFAULT_FOR_PARAMFILE = {
15
+ TTAGS.fname: TO_ENBID_FILENAME,
16
+ # TTAGS.des_num_ngb: DEFAULT_NGB,
17
+ TTAGS.spatial_scale: 1.0,
18
+ TTAGS.part_boundary: 7,
19
+ TTAGS.node_splitting_criterion: 1,
20
+ TTAGS.cubic_cells: 0,
21
+ TTAGS.median_splitting_on: 1,
22
+ TTAGS.type_of_smoothing: 3,
23
+ TTAGS.vol_corr: 1,
24
+ TTAGS.type_of_kernel: 3,
25
+ TTAGS.kernel_bias_correction: 1,
26
+ TTAGS.anisotropy_kernel: 0,
27
+ TTAGS.anisotropy: 0,
28
+ TTAGS.type_list_on: 0,
29
+ TTAGS.periodic_boundary_on: 0
30
+ }
31
+
32
+ TEMP_DIR = tempfile.TemporaryDirectory()
33
+
34
+
35
+ if __name__ == '__main__':
36
+ raise NotImplementedError()
enbid_ananke/_name.py ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env python
2
+ """
3
+ """
4
+ __all__ = ['NAME']
5
+
6
+ NAME = 'enbid_ananke'
7
+
8
+
9
+ if __name__ == '__main__':
10
+ raise NotImplementedError()
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env python
2
+ """
3
+ Contains the EnBiD module templates.
4
+ """
5
+ from string import Template
6
+ from dataclasses import dataclass
7
+
8
+ from ._builtin_utils import Singleton
9
+
10
+ __all__ = ['TTAGS', 'ENBID_PARAMFILE_TEMPLATE']
11
+
12
+ @dataclass(frozen=True)
13
+ class TemplateTags(metaclass=Singleton):
14
+ fname: str = 'fname'
15
+ des_num_ngb: str = 'des_num_ngb'
16
+ spatial_scale: str = 'spatial_scale'
17
+ part_boundary: str = 'part_boundary'
18
+ node_splitting_criterion: str = 'node_splitting_criterion'
19
+ cubic_cells: str = 'cubic_cells'
20
+ median_splitting_on: str = 'median_splitting_on'
21
+ type_of_smoothing: str = 'type_of_smoothing'
22
+ vol_corr: str = 'vol_corr'
23
+ type_of_kernel: str = 'type_of_kernel'
24
+ kernel_bias_correction: str = 'kernel_bias_correction'
25
+ anisotropy_kernel: str = 'anisotropy_kernel'
26
+ anisotropy: str = 'anisotropy'
27
+ des_num_ngb_a: str = 'des_num_ngb_a'
28
+ type_list_on: str = 'type_list_on'
29
+ periodic_boundary_on: str = 'periodic_boundary_on'
30
+
31
+ TTAGS = TemplateTags()
32
+
33
+ ENBID_PARAMFILE_TEMPLATE = Template(f"""% Input and Output
34
+ InitCondFile ${{{TTAGS.fname}}}
35
+
36
+ %-------------------------------------------------------
37
+ ICFormat 0 % O)ASCII 1)Gadget 2)User defined
38
+ SnapshotFileBase _d3n${{{TTAGS.des_num_ngb}}}
39
+
40
+ %-------------------------------------------------------
41
+ % Tree related options
42
+ SpatialScale ${{{TTAGS.spatial_scale}}} % x->x/SpatialScale and v->v
43
+ PartBoundary ${{{TTAGS.part_boundary}}} % Min particles in a node to do boundary correction
44
+ NodeSplittingCriterion ${{{TTAGS.node_splitting_criterion}}} % 0)Alternate 1) Min Entropy
45
+ CubicCells ${{{TTAGS.cubic_cells}}} % use 1 in spherically symmetric systems
46
+ MedianSplittingOn ${{{TTAGS.median_splitting_on}}}
47
+
48
+ %--------------------------------------------------------
49
+ % Smoothing options AM=adaptive metric Ker=Kernel Sp=Spherical Pr=Product
50
+ % 0) None 1)FiEstAS 2)Ker Sp Normal 3)Ker Sp AM 4)KerPr Normal 5)KerPr AM
51
+ TypeOfSmoothing ${{{TTAGS.type_of_smoothing}}}
52
+ DesNumNgb ${{{TTAGS.des_num_ngb}}} % 2-10 for Fiestas and 25-100 for Kernel
53
+ VolCorr ${{{TTAGS.vol_corr}}} % 0) Disbale 1) Enable
54
+
55
+ %--------------------------------------------------------
56
+ % Kernel smoothing related options
57
+ % 0) B-Spline 1)top hat 2)Bi_weight (1-x^2)^2 3)Epanechikov 4)CIC 5)TSC
58
+ TypeOfKernel ${{{TTAGS.type_of_kernel}}}
59
+ KernelBiasCorrection ${{{TTAGS.kernel_bias_correction}}} % 0)none 1)shift central particle
60
+ AnisotropicKernel ${{{TTAGS.anisotropy_kernel}}} % 0) Isotropic 1) Anisotropic
61
+ Anisotropy ${{{TTAGS.anisotropy}}} % fix minimum c/a minor/major axis ratio
62
+ DesNumNgbA ${{{TTAGS.des_num_ngb_a}}} % Neighbors for cal covar metric for Anisotropic Ker
63
+ %--------------------------------------------------------
64
+ % other miscellaneous option
65
+ TypeListOn ${{{TTAGS.type_list_on}}}
66
+ PeriodicBoundaryOn ${{{TTAGS.periodic_boundary_on}}}
67
+ %--------------------------------------------------------""")
68
+
69
+
70
+ if __name__ == '__main__':
71
+ raise NotImplementedError()
@@ -0,0 +1,21 @@
1
+
2
+ # This file was generated by 'versioneer.py' (0.29) from
3
+ # revision-control system data, or from the parent directory name of an
4
+ # unpacked source archive. Distribution tarballs contain a pre-generated copy
5
+ # of this file.
6
+
7
+ import json
8
+
9
+ version_json = '''
10
+ {
11
+ "date": "2025-06-05T16:42:33-0400",
12
+ "dirty": false,
13
+ "error": null,
14
+ "full-revisionid": "62be34aa6c93e7020f160dbb782b8d424151858b",
15
+ "version": "0.3.0"
16
+ }
17
+ ''' # END VERSION_JSON
18
+
19
+
20
+ def get_versions():
21
+ return json.loads(version_json)
enbid_ananke/utils.py ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env python
2
+ """
3
+ Module miscellaneous utilities
4
+ """
5
+ from enbid_ananke._builtin_utils import Singleton, execute
6
+
7
+ __all__ = ['Singleton', 'execute']
8
+
9
+
10
+ if __name__ == '__main__':
11
+ raise NotImplementedError()
@@ -0,0 +1,44 @@
1
+ Metadata-Version: 2.4
2
+ Name: enbid_ananke
3
+ Version: 0.3.0
4
+ Summary: py-EnBiD-ananke: Python wrapper for EnBiD (Sharma & Steinmetz 2011 <http://ascl.net/1109.012>) for py-ananke <https://github.com/athob/py-ananke>.
5
+ Home-page: https://github.com/athob/py-EnBiD-ananke
6
+ Author: Adrien Thob
7
+ Author-email: athob@sas.upenn.edu
8
+ Maintainer: Adrien Thob
9
+ Maintainer-email: athob@sas.upenn.edu
10
+ License: GNU General Public License v2 or later (GPLv2+)
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
15
+ Classifier: Natural Language :: English
16
+ Classifier: Operating System :: Unix
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Topic :: Scientific/Engineering :: Astronomy
19
+ Requires-Python: >=3.8,<3.14
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Requires-Dist: numpy<2,>=1.22
23
+ Requires-Dist: pandas<3,>=2
24
+ Requires-Dist: scikit-learn<2,>=1.1
25
+ Dynamic: author
26
+ Dynamic: author-email
27
+ Dynamic: classifier
28
+ Dynamic: description
29
+ Dynamic: description-content-type
30
+ Dynamic: home-page
31
+ Dynamic: license
32
+ Dynamic: license-file
33
+ Dynamic: maintainer
34
+ Dynamic: maintainer-email
35
+ Dynamic: requires-dist
36
+ Dynamic: requires-python
37
+ Dynamic: summary
38
+
39
+ # py-EnBiD-ananke
40
+
41
+ [![Documentation Status](https://readthedocs.org/projects/py-enbid-ananke/badge/?version=latest)](https://py-enbid-ananke.readthedocs.io/en/latest/?badge=latest)[![DOI](https://zenodo.org/badge/473607925.svg)](https://zenodo.org/badge/latestdoi/473607925)
42
+
43
+
44
+ Python wrapper for EnBiD ([Sharma & Steinmetz 2011](http://ascl.net/1109.012)). Clone the repository and run `pip install .` to get a working copy in your python environment. Visit the [jupyter](jupyter) directory for example uses.
@@ -0,0 +1,68 @@
1
+ .cpython-310-x86_64-linux-gnu.so,sha256=pjrtMPrjLgvYqfVsmubOZWdG2RLqCPotDlziNfE7VIo,14928
2
+ enbid_ananke/__init__.py,sha256=MH7IYAhCaiX3vxG5vW2NLTYktIqW69ntQX6FkE9HH8k,12750
3
+ enbid_ananke/__metadata__.py,sha256=suMpgS5hKyD9FWSLTx2YA4eP5YmV1SHk1n0kd2zpcfA,6240
4
+ enbid_ananke/_builtin_utils.py,sha256=1i-xwWrhrTidlmoe226iDLHX30i4VFdzcUJABXteyjI,1894
5
+ enbid_ananke/_constants.py,sha256=KY0z8SopJUIfalDuGIwqavc-2nxeLCLwZFSC2HdtK94,1414
6
+ enbid_ananke/_defaults.py,sha256=WkNh6wnjvyKVqUtUZmG1mXni-r3qHQnGwnwnJgjtQLE,812
7
+ enbid_ananke/_name.py,sha256=vSy_AyyC4jwbJF9er4D4u6xbJuIphj7H7cJZmCFC-WU,133
8
+ enbid_ananke/_templates.py,sha256=p1CpSoTbu2B4D61pv58D1zcEg6wKD3wbfCAO8JBJjxo,3267
9
+ enbid_ananke/_version.py,sha256=6JExRD5Z4jxF9Qzb1N68QzMaJiSr2x_U9BHZplAn9UI,497
10
+ enbid_ananke/utils.py,sha256=Th6MSOm-Xue8C8Ly9GgWoDqaIaNUP8Rx96H0bQJetPk,217
11
+ enbid_ananke/Enbid-2.0/.DS_Store,sha256=2D1L28nFfx-PiTs5Vz4r2gvW6ePnN1ZWFJlLsHnVc94,6148
12
+ enbid_ananke/Enbid-2.0/COPYING,sha256=XTj4tCeY84rDVU8OtULV8DdiaBNAXReC6IjWhc6SWNo,18099
13
+ enbid_ananke/Enbid-2.0/COPYRIGHT,sha256=dg9uZ9dXT51TrmVvcX-m8dvAi48sp0u2g-2X7ymy7IM,768
14
+ enbid_ananke/Enbid-2.0/Enbid,sha256=t28QyIjJjFunTlj37m7XlCeeyqloMm462CuRRuJO4DQ,135120
15
+ enbid_ananke/Enbid-2.0/periodic_lengths.txt,sha256=CZ-cCw6Gg5tFj8j9XFif6fPwtvfn6BAL58buRKPufMc,17
16
+ enbid_ananke/Enbid-2.0/Documentation/enbid.pdf,sha256=Elr_d1XJvYwQay6myIzfab74vYJ4u9gO9rXIFfYejIw,1030858
17
+ enbid_ananke/Enbid-2.0/Documentation/users-guide.pdf,sha256=_j682cXQtxfeath_uPTDDGWNW9Mhor7AE8iT74wAhxA,108328
18
+ enbid_ananke/Enbid-2.0/Documentation/users-guide.tex,sha256=L1CliU2_YDzfYyy0njJjnQkUNg_J1PKhOXpZyJrF6lg,26755
19
+ enbid_ananke/Enbid-2.0/Documentation/users-guide.tex.flc,sha256=gj6NRBDt8q9jU4zZjbJ8X_MWNb8wwceFiKwLyrEUb8k,10397
20
+ enbid_ananke/Enbid-2.0/Examples/hernquist1_small/snapshot_ici,sha256=h37JQ8I8oUiRW2OhLlTD8Ato3EptWQHyxDgaSM-8Xf0,280288
21
+ enbid_ananke/Enbid-2.0/Examples/hernquist1_small/snapshot_ici_typelist,sha256=drEmxuG8Cfcg_GdzZt419pyi_lVTyLooUPvS9JPenHo,20
22
+ enbid_ananke/Enbid-2.0/Examples/uniform_6d_box_4/snapshot_ici,sha256=wcGUUJmEi9iXsokkp8ihDPsElt6lmRV7DSkm2zGiwvY,280288
23
+ enbid_ananke/Enbid-2.0/Examples/uniform_6d_box_4/snapshot_ici_3d.ascii,sha256=OoczyfJ5DfiGycej-fTXJRM7-iUJA_cjfkWV0Jd17YQ,400000
24
+ enbid_ananke/Enbid-2.0/Examples/uniform_6d_box_4/snapshot_ici_6d.ascii,sha256=duJq4yTJbwpjZDD0BfoLTFMnAr6vs-S8N4ZA5OJ7_Bg,514544
25
+ enbid_ananke/Enbid-2.0/parameterfiles/myparameterfile1,sha256=gGEnUu-NBjv3XA6BXVmmMZSEt5ovkjxMmrmBwFJLqTA,1669
26
+ enbid_ananke/Enbid-2.0/parameterfiles/myparameterfile2,sha256=QFGEMwZTx_ESLo1_MMrSJviQGigR63wN_yQiaBtOOJw,1670
27
+ enbid_ananke/Enbid-2.0/parameterfiles/myparameterfile3,sha256=ZMWixSVWvw4tPbP_TQn29HdFZak3N96JDqZMHDr1pCg,1670
28
+ enbid_ananke/Enbid-2.0/parameterfiles/myparameterfile4,sha256=5U3aV9e0j949EnXImcsIrlzNRr8UyycAWAUoW4OSLfY,1669
29
+ enbid_ananke/Enbid-2.0/src/Makefile,sha256=NsEoNaY52XGNxzOcFVelz6b2cXQKQr6wE7cw_ZNNylI,1258
30
+ enbid_ananke/Enbid-2.0/src/allocate.cpp,sha256=T3JOHQwNhCAfEkR0wMMNBlxikPro8WlZfsnZUnFfNBM,798
31
+ enbid_ananke/Enbid-2.0/src/allocate.o,sha256=3twl9bLLEeBPLD9EsI_j1U29HIKgqQqnUTf4LdS07DQ,2344
32
+ enbid_ananke/Enbid-2.0/src/allvars.cpp,sha256=wh_epltyFfbt0mx0Y4y1UwnB4o9OTaDjLAu2VgrdOso,1203
33
+ enbid_ananke/Enbid-2.0/src/allvars.h,sha256=Sj8ZYVYolw8RNnLisK9nU6dn6BCG7pnHBHYePcYpsOg,6224
34
+ enbid_ananke/Enbid-2.0/src/allvars.o,sha256=kdFnn8IzULhIwCUIC0FVW6gZR5U6acIvEjFX7A_CTAQ,4144
35
+ enbid_ananke/Enbid-2.0/src/begrun.cpp,sha256=U9WBJtrHpLcAl7yqKb7dGlRLOHgXjlAT939Mzv39rHk,8124
36
+ enbid_ananke/Enbid-2.0/src/begrun.o,sha256=v4dr-qA7XdZoPVZX1EWN0jUUMVj43eej4WcfS9F31Q4,15576
37
+ enbid_ananke/Enbid-2.0/src/density_nd.cpp,sha256=91Hk98A8FTWBV8MZMnzC4G0wzkZwMsURnAQFPq1qTTI,2780
38
+ enbid_ananke/Enbid-2.0/src/density_nd.o,sha256=KqhlZKA4Jv3NBapOujZBWo3KBRB80uP5yfXCFehL2OA,9600
39
+ enbid_ananke/Enbid-2.0/src/functions.cpp,sha256=LlWRACi5Tyq87lScRtNg8z0JrOca3-8-v1mthWXTQ7I,4255
40
+ enbid_ananke/Enbid-2.0/src/functions.h,sha256=2_59SLKWt1ZHMcP-0-LZdjgWi67cWaDd1_lM_iYMfBQ,690
41
+ enbid_ananke/Enbid-2.0/src/functions.o,sha256=K2U52x-UpAjonAJ0i8ki_-K-o30WQ7McRX4AFaTuWvc,10056
42
+ enbid_ananke/Enbid-2.0/src/init.cpp,sha256=IiIACdQtjBxmG7BcVhcSdHD_pK7fFpSvfX2O8KniX_w,5775
43
+ enbid_ananke/Enbid-2.0/src/init.o,sha256=94Ig7dicQLaJ_uX8L2NdDyguWzQI-baKJLAZB6XUQEo,15096
44
+ enbid_ananke/Enbid-2.0/src/io.cpp,sha256=XJJob696q6as7UYhaB9KhW-Wae3cVF91KATRRUZW69I,4715
45
+ enbid_ananke/Enbid-2.0/src/io.o,sha256=FFi2Wwi7nLIbpZW8URFCOCM6sGr5b7I91DFEDUhV-_Q,14488
46
+ enbid_ananke/Enbid-2.0/src/main.cpp,sha256=l9WssG9DnuFEBZKxCTHuKUzZDRcO3UY5zOdT82m12Xg,2675
47
+ enbid_ananke/Enbid-2.0/src/main.o,sha256=KIeWJ15o9SvfVL1qyfghAbIOLWp8iIgBpo1b-s4M0N0,3656
48
+ enbid_ananke/Enbid-2.0/src/ngb_search.cpp,sha256=H4nLXA1cMjsZTHq_yUZ3N26ztwKz1Wn8xeGcM0TksSs,44098
49
+ enbid_ananke/Enbid-2.0/src/ngb_search.h,sha256=aJ56_FkR8cIzOoy7mcdlIrdAhdN2_Uex0TBzBDE8xF0,3332
50
+ enbid_ananke/Enbid-2.0/src/ngb_search.o,sha256=NCI5iUBM7Dh2GnfBVMUMxGGKgnoUY_NKKv7UcXNaYAc,62272
51
+ enbid_ananke/Enbid-2.0/src/nr.cpp,sha256=naZWN4om72DddeBlkykesDyGLBgV03GXAmjVZE6cceE,4188
52
+ enbid_ananke/Enbid-2.0/src/nr.h,sha256=laM29IQdeAKkHVBJL31aCxDEJAPaQuSjNtmg1k4iZ44,428
53
+ enbid_ananke/Enbid-2.0/src/nr.o,sha256=OO7TCAJsm4Hp4TvaZIJdmJlXtLocYijXeuDQ5_CGBTU,10208
54
+ enbid_ananke/Enbid-2.0/src/proto.h,sha256=TlNBDeLwLYNREPOveKmebAPYZhemzgrKhE9fJjSjpoI,874
55
+ enbid_ananke/Enbid-2.0/src/read_ic.cpp,sha256=f3dFUshJPds1gy1RtUe1MJHcZS3rdTAhheLe53rSA3o,8106
56
+ enbid_ananke/Enbid-2.0/src/read_ic.o,sha256=tdngkBMSC7RMMpBlaZHnq7AFxMCzKeQKGLSDWCRzZRc,50288
57
+ enbid_ananke/Enbid-2.0/src/tree.cpp,sha256=3RrHnfKzBCF_BZJXLoIdDA9V-TGyMhK8cm0cMZS5MLQ,21766
58
+ enbid_ananke/Enbid-2.0/src/tree.h,sha256=wh7IrVTh3YXb_PKUU1D9Cgm3imTfiSsiszRGDHaO8dc,1650
59
+ enbid_ananke/Enbid-2.0/src/tree.o,sha256=mXTUydoAayIgltgeMvtdQthhQNVLDhtmGfkYUbteV1Q,29576
60
+ enbid_ananke/Enbid-2.0/src/tree_search.cpp,sha256=JFCQC-wZcEbkMZriKH14CTZAECmx87E42fHKSqGan2c,12338
61
+ enbid_ananke/Enbid-2.0/src/tree_search.o,sha256=DCRDUn-I65ponUlun9FBr0TvJ3x4dVYTLX0XdbZvqhk,18112
62
+ enbid_ananke/__license__/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
63
+ enbid_ananke/__license__/__init__.py,sha256=pw8v0wdzFSTxQlgas2sXm2yco8D8BprSeg7Qz8Dl75c,174
64
+ enbid_ananke-0.3.0.dist-info/METADATA,sha256=x_nIbdmMIKOUEUlBLOMj1_BdRI4zl7Kumi6qC_w0_L0,1824
65
+ enbid_ananke-0.3.0.dist-info/WHEEL,sha256=nM3eM4f5aYHWcRucTjqHlXtgTs96MDcpukQDS7vD-wc,113
66
+ enbid_ananke-0.3.0.dist-info/top_level.txt,sha256=q2EVXC-0ryf0y6BuaHzgOEuNHaGMabvTBUw7KTTtBoc,14
67
+ enbid_ananke-0.3.0.dist-info/RECORD,,
68
+ enbid_ananke-0.3.0.dist-info/licenses/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp310-cp310-manylinux_2_39_x86_64
5
+