pycodata 2.5.4__tar.gz → 2.6.1__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 (118) hide show
  1. pycodata-2.6.1/Makefile +34 -0
  2. {pycodata-2.5.4/src/pycodata.egg-info → pycodata-2.6.1}/PKG-INFO +6 -6
  3. pycodata-2.6.1/README.md +23 -0
  4. pycodata-2.6.1/VERSION +1 -0
  5. {pycodata-2.5.4 → pycodata-2.6.1}/pyproject.toml +2 -2
  6. pycodata-2.6.1/setup-old.txt +143 -0
  7. {pycodata-2.5.4 → pycodata-2.6.1}/setup.py +4 -1
  8. pycodata-2.6.1/src/pycodata/__init__.py +39 -0
  9. pycodata-2.6.1/src/pycodata/__main__.py +10 -0
  10. pycodata-2.6.1/src/pycodata/codata_constants_2010.py +2379 -0
  11. pycodata-2.6.1/src/pycodata/codata_constants_2014.py +2379 -0
  12. pycodata-2.6.1/src/pycodata/codata_constants_2018.py +2512 -0
  13. pycodata-2.6.1/src/pycodata/codata_constants_2022.py +2901 -0
  14. pycodata-2.6.1/src/pycodata/lookup.py +73 -0
  15. pycodata-2.6.1/src/pycodata/quantity.py +398 -0
  16. pycodata-2.6.1/src/pycodata/version.py +1 -0
  17. {pycodata-2.5.4 → pycodata-2.6.1/src/pycodata.egg-info}/PKG-INFO +6 -6
  18. pycodata-2.6.1/src/pycodata.egg-info/SOURCES.txt +24 -0
  19. pycodata-2.6.1/test/__init__.py +5 -0
  20. pycodata-2.6.1/test/test_lookup.py +82 -0
  21. pycodata-2.5.4/README.md +0 -23
  22. pycodata-2.5.4/VERSION +0 -1
  23. pycodata-2.5.4/src/pycodata/__init__.py +0 -27
  24. pycodata-2.5.4/src/pycodata/__main__.py +0 -5
  25. pycodata-2.5.4/src/pycodata/_codata_constants_2010.c +0 -3034
  26. pycodata-2.5.4/src/pycodata/_codata_constants_2014.c +0 -3034
  27. pycodata-2.5.4/src/pycodata/_codata_constants_2018.c +0 -3205
  28. pycodata-2.5.4/src/pycodata/_codata_constants_2022.c +0 -3214
  29. pycodata-2.5.4/src/pycodata/_codata_version.c +0 -21
  30. pycodata-2.5.4/src/pycodata/codata.h +0 -1428
  31. pycodata-2.5.4/src/pycodata/darwin/bin/ccli +0 -0
  32. pycodata-2.5.4/src/pycodata/darwin/bin/codata +0 -0
  33. pycodata-2.5.4/src/pycodata/darwin/include/codata.h +0 -1428
  34. pycodata-2.5.4/src/pycodata/darwin/include/codata.mod +0 -0
  35. pycodata-2.5.4/src/pycodata/darwin/include/codata__constants_2010.mod +0 -0
  36. pycodata-2.5.4/src/pycodata/darwin/include/codata__constants_2014.mod +0 -0
  37. pycodata-2.5.4/src/pycodata/darwin/include/codata__constants_2018.mod +0 -0
  38. pycodata-2.5.4/src/pycodata/darwin/include/codata__constants_2022.mod +0 -0
  39. pycodata-2.5.4/src/pycodata/darwin/include/codata__constants_type.mod +0 -0
  40. pycodata-2.5.4/src/pycodata/darwin/include/m_cli2.mod +0 -0
  41. pycodata-2.5.4/src/pycodata/darwin/include/regex_module.mod +0 -0
  42. pycodata-2.5.4/src/pycodata/darwin/include/stdlib_ascii.mod +0 -0
  43. pycodata-2.5.4/src/pycodata/darwin/include/stdlib_error.mod +0 -0
  44. pycodata-2.5.4/src/pycodata/darwin/include/stdlib_io.mod +0 -0
  45. pycodata-2.5.4/src/pycodata/darwin/include/stdlib_io_aux.mod +0 -0
  46. pycodata-2.5.4/src/pycodata/darwin/include/stdlib_kinds.mod +0 -0
  47. pycodata-2.5.4/src/pycodata/darwin/include/stdlib_optval.mod +0 -0
  48. pycodata-2.5.4/src/pycodata/darwin/include/stdlib_string_type.mod +0 -0
  49. pycodata-2.5.4/src/pycodata/darwin/include/stdlib_strings.mod +0 -0
  50. pycodata-2.5.4/src/pycodata/darwin/lib/libcodata.a +0 -0
  51. pycodata-2.5.4/src/pycodata/darwin/lib/libcodata.dylib +0 -0
  52. pycodata-2.5.4/src/pycodata/darwin/share/man/man1/codata_cli.1.gz +0 -0
  53. pycodata-2.5.4/src/pycodata/darwin/share/man/man3/codata.3.gz +0 -0
  54. pycodata-2.5.4/src/pycodata/darwin/share/man/man3/codata_constant_type.3.gz +0 -0
  55. pycodata-2.5.4/src/pycodata/darwin/share/man/man3/codata_version.3.gz +0 -0
  56. pycodata-2.5.4/src/pycodata/libcodata.dll +0 -0
  57. pycodata-2.5.4/src/pycodata/libcodata.dll.a +0 -0
  58. pycodata-2.5.4/src/pycodata/libcodata.dylib +0 -0
  59. pycodata-2.5.4/src/pycodata/libcodata.so +0 -0
  60. pycodata-2.5.4/src/pycodata/linux/bin/ccli +0 -0
  61. pycodata-2.5.4/src/pycodata/linux/bin/codata +0 -0
  62. pycodata-2.5.4/src/pycodata/linux/include/codata.h +0 -1428
  63. pycodata-2.5.4/src/pycodata/linux/include/codata.mod +0 -0
  64. pycodata-2.5.4/src/pycodata/linux/include/codata__constants_2010.mod +0 -0
  65. pycodata-2.5.4/src/pycodata/linux/include/codata__constants_2014.mod +0 -0
  66. pycodata-2.5.4/src/pycodata/linux/include/codata__constants_2018.mod +0 -0
  67. pycodata-2.5.4/src/pycodata/linux/include/codata__constants_2022.mod +0 -0
  68. pycodata-2.5.4/src/pycodata/linux/include/codata__constants_type.mod +0 -0
  69. pycodata-2.5.4/src/pycodata/linux/include/m_cli2.mod +0 -0
  70. pycodata-2.5.4/src/pycodata/linux/include/regex_module.mod +0 -0
  71. pycodata-2.5.4/src/pycodata/linux/include/stdlib_ascii.mod +0 -0
  72. pycodata-2.5.4/src/pycodata/linux/include/stdlib_error.mod +0 -0
  73. pycodata-2.5.4/src/pycodata/linux/include/stdlib_io.mod +0 -0
  74. pycodata-2.5.4/src/pycodata/linux/include/stdlib_io_aux.mod +0 -0
  75. pycodata-2.5.4/src/pycodata/linux/include/stdlib_kinds.mod +0 -0
  76. pycodata-2.5.4/src/pycodata/linux/include/stdlib_optval.mod +0 -0
  77. pycodata-2.5.4/src/pycodata/linux/include/stdlib_string_type.mod +0 -0
  78. pycodata-2.5.4/src/pycodata/linux/include/stdlib_strings.mod +0 -0
  79. pycodata-2.5.4/src/pycodata/linux/lib/libcodata.a +0 -0
  80. pycodata-2.5.4/src/pycodata/linux/lib/libcodata.so +0 -0
  81. pycodata-2.5.4/src/pycodata/linux/share/man/man1/codata_cli.1.gz +0 -0
  82. pycodata-2.5.4/src/pycodata/linux/share/man/man3/codata.3.gz +0 -0
  83. pycodata-2.5.4/src/pycodata/linux/share/man/man3/codata_constant_type.3.gz +0 -0
  84. pycodata-2.5.4/src/pycodata/linux/share/man/man3/codata_version.3.gz +0 -0
  85. pycodata-2.5.4/src/pycodata/windows/bin/ccli.exe +0 -0
  86. pycodata-2.5.4/src/pycodata/windows/bin/codata.exe +0 -0
  87. pycodata-2.5.4/src/pycodata/windows/include/codata.h +0 -1428
  88. pycodata-2.5.4/src/pycodata/windows/include/codata.mod +0 -0
  89. pycodata-2.5.4/src/pycodata/windows/include/codata__constants_2010.mod +0 -0
  90. pycodata-2.5.4/src/pycodata/windows/include/codata__constants_2014.mod +0 -0
  91. pycodata-2.5.4/src/pycodata/windows/include/codata__constants_2018.mod +0 -0
  92. pycodata-2.5.4/src/pycodata/windows/include/codata__constants_2022.mod +0 -0
  93. pycodata-2.5.4/src/pycodata/windows/include/codata__constants_type.mod +0 -0
  94. pycodata-2.5.4/src/pycodata/windows/include/m_cli2.mod +0 -0
  95. pycodata-2.5.4/src/pycodata/windows/include/regex_module.mod +0 -0
  96. pycodata-2.5.4/src/pycodata/windows/include/stdlib_ascii.mod +0 -0
  97. pycodata-2.5.4/src/pycodata/windows/include/stdlib_error.mod +0 -0
  98. pycodata-2.5.4/src/pycodata/windows/include/stdlib_io.mod +0 -0
  99. pycodata-2.5.4/src/pycodata/windows/include/stdlib_io_aux.mod +0 -0
  100. pycodata-2.5.4/src/pycodata/windows/include/stdlib_kinds.mod +0 -0
  101. pycodata-2.5.4/src/pycodata/windows/include/stdlib_optval.mod +0 -0
  102. pycodata-2.5.4/src/pycodata/windows/include/stdlib_string_type.mod +0 -0
  103. pycodata-2.5.4/src/pycodata/windows/include/stdlib_strings.mod +0 -0
  104. pycodata-2.5.4/src/pycodata/windows/lib/libcodata.a +0 -0
  105. pycodata-2.5.4/src/pycodata/windows/lib/libcodata.dll +0 -0
  106. pycodata-2.5.4/src/pycodata/windows/lib/libcodata.dll.a +0 -0
  107. pycodata-2.5.4/src/pycodata/windows/share/man/man1/codata_cli.1.gz +0 -0
  108. pycodata-2.5.4/src/pycodata/windows/share/man/man3/codata.3.gz +0 -0
  109. pycodata-2.5.4/src/pycodata/windows/share/man/man3/codata_constant_type.3.gz +0 -0
  110. pycodata-2.5.4/src/pycodata/windows/share/man/man3/codata_version.3.gz +0 -0
  111. pycodata-2.5.4/src/pycodata.egg-info/SOURCES.txt +0 -52
  112. pycodata-2.5.4/src/pycodata.egg-info/entry_points.txt +0 -2
  113. {pycodata-2.5.4 → pycodata-2.6.1}/LICENSE +0 -0
  114. {pycodata-2.5.4 → pycodata-2.6.1}/MANIFEST.in +0 -0
  115. {pycodata-2.5.4 → pycodata-2.6.1}/setup.cfg +0 -0
  116. {pycodata-2.5.4 → pycodata-2.6.1}/src/pycodata.egg-info/dependency_links.txt +0 -0
  117. {pycodata-2.5.4 → pycodata-2.6.1}/src/pycodata.egg-info/top_level.txt +0 -0
  118. {pycodata-2.5.4 → pycodata-2.6.1}/test/test_all.py +0 -0
@@ -0,0 +1,34 @@
1
+ include make.in
2
+ # ---------------------------------------------------------------------
3
+ # CONFIGURATION
4
+ SETUP=setup.py pyproject.toml
5
+ # ---------------------------------------------------------------------
6
+
7
+
8
+ # ---------------------------------------------------------------------
9
+ # TARGETS
10
+ all: build
11
+
12
+ .PHONY: build
13
+ build: $(SETUP)
14
+ $(FPM_PY) -m build --no-isolation --sdist
15
+ $(FPM_PY) -m build --no-isolation --wheel
16
+
17
+ test: build
18
+ $(FPM_PY) -m pytest -v
19
+
20
+ example: build
21
+ $(FPM_PY) ../example/example.py
22
+ # ---------------------------------------------------------------------
23
+
24
+
25
+ # ---------------------------------------------------------------------
26
+ # OTHERS
27
+ clean:
28
+ rm -rf build
29
+ rm -rf dist
30
+ rm -rf *.egg-info
31
+ rm -rf __pycache__
32
+ rm -rf wheelhouse
33
+ rm -rf $(FPM_PY_SRC)/__pycache__
34
+ # ---------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycodata
3
- Version: 2.5.4
3
+ Version: 2.6.1
4
4
  Summary: pycodata: CODATA constants for python.
5
5
  Author-email: Milan Skocic <milan.skocic@gmail.com>
6
6
  License-Expression: MIT
@@ -16,11 +16,11 @@ Dynamic: license-file
16
16
 
17
17
  # Introduction
18
18
 
19
- Python wrapper around the
20
- [Fortran codata library](https://milanskocic.github.io/codata/ ).
21
- The Fortran library does not need to be installed, the python wrapper embeds all needed fortran dependencies
22
- for Windows and MacOS.
23
- On linux, you might have to install `libgfortran` if it is not distributed by default with your linux distribution.
19
+ `pycodata` is a library providing the fundamental physical constants
20
+ published by CODATA.
21
+ It includes the 2022, 2018, 2014 and 2010 recommended values,
22
+ allowing applications to reproduce calculations based on specific
23
+ CODATA releases.
24
24
 
25
25
  # Installation
26
26
 
@@ -0,0 +1,23 @@
1
+
2
+ # Introduction
3
+
4
+ `pycodata` is a library providing the fundamental physical constants
5
+ published by CODATA.
6
+ It includes the 2022, 2018, 2014 and 2010 recommended values,
7
+ allowing applications to reproduce calculations based on specific
8
+ CODATA releases.
9
+
10
+ # Installation
11
+
12
+ In a terminal, enter:
13
+
14
+ ```python
15
+ pip install pycodata
16
+ ```
17
+
18
+ # License
19
+
20
+ MIT
21
+
22
+ ```
23
+ MIT License
pycodata-2.6.1/VERSION ADDED
@@ -0,0 +1 @@
1
+ 2.6.1
@@ -26,5 +26,5 @@ where = ["src"]
26
26
  [tool.setuptools.package-data]
27
27
  pycodata = ["libcodata.*", "codata*", "linux/**", "darwin/**", "windows/**", "libgfortran*", "libquadmath*", "libgcc_s*", "libwinpthread*"]
28
28
 
29
- [project.scripts]
30
- pycodata = "pycodata:main"
29
+ #[project.scripts]
30
+ #pycodata = "pycodata:main"
@@ -0,0 +1,143 @@
1
+ r"""Setup."""
2
+ import platform
3
+ import shutil
4
+ import pathlib
5
+ import subprocess
6
+ from setuptools import setup, Extension
7
+
8
+ LIBSDARWIN = ("libgfortran.5", "libquadmath.0", "libgcc_s.1.1")
9
+ LIBSWINDOWS = ("libgfortran-5", "libquadmath-0", "libgcc_s_seh-1", "libwinpthread-1")
10
+ LIBSLINUX = []
11
+ ROOTLINUX = "/usr/lib/"
12
+ ROOTDARWIN = "/usr/local/opt/gcc/lib/gcc/current"
13
+ ROOTWINDOWS = "C:/msys64/mingw64/bin"
14
+ ROOT = ROOTLINUX
15
+ LIBS = LIBSLINUX
16
+
17
+ name = "codata"
18
+ libraries = None
19
+ library_dirs = None
20
+ runtime_library_dirs = None
21
+ extra_objects = None
22
+ ext = [".so"]
23
+
24
+
25
+ if platform.system() == "Linux":
26
+ libraries = [name]
27
+ library_dirs = [f"./src/py{name:s}"]
28
+ runtime_library_dirs = ["$ORIGIN"]
29
+ ext = [".so"]
30
+ ROOT = ROOTLINUX
31
+ LIBS = LIBSLINUX
32
+ if platform.system() == "Windows":
33
+ extra_objects = [f"./src/py{name:s}/lib{name:s}.dll.a"]
34
+ ext = [".dll", ".dll.a"]
35
+ ROOT = ROOTWINDOWS
36
+ LIBS = LIBSWINDOWS
37
+ if platform.system() == "Darwin":
38
+ libraries = [name]
39
+ library_dirs = [f"./src/py{name:s}"]
40
+ runtime_library_dirs = ["@loader_path"]
41
+ ext = [".dylib"]
42
+ ROOT = ROOTDARWIN
43
+ LIBS = LIBSDARWIN
44
+
45
+
46
+ # Headers
47
+ root_src = pathlib.Path(f"./src/py{name:s}/include/")
48
+ root_dest = pathlib.Path(f"./src/py{name:s}/")
49
+ files = [f"{name:s}.h"]
50
+ for file in files:
51
+ src = root_src / file
52
+ dest = root_dest / file
53
+ if not src.exists():
54
+ raise ValueError(f"The library {name:s} was not installed. Run in the root folder: make install prefix=./py/src/py{name:s}")
55
+ try:
56
+ print(f"copying {str(src):s} -> {str(dest.parent):s}.")
57
+ shutil.copy(src, dest)
58
+ except:
59
+ print(f"{file:s} was not copied.")
60
+
61
+ # Libs
62
+ root_src = pathlib.Path(f"./src/py{name:s}/lib/")
63
+ root_dest = pathlib.Path(f"./src/py{name:s}/")
64
+ files = list(map(lambda s: f"lib{name:s}"+s, ext))
65
+ for file in files:
66
+ src = root_src / file
67
+ dest = root_dest / file
68
+ if not src.exists():
69
+ raise ValueError(f"The library {name:s} was not installed. Run in the root folder: make install prefix=./py/src/py{name:s}")
70
+ try:
71
+ print(f"copying {str(src):s} -> {str(dest.parent):s}.")
72
+ shutil.copy(src, dest)
73
+ except:
74
+ print(f"{file:s} was not copied.")
75
+
76
+ # gfortran libs
77
+ root_src = pathlib.Path(ROOT)
78
+ root_dest = pathlib.Path(f"./src/py{name:s}/")
79
+ files = LIBS
80
+ for file in files:
81
+ src = root_src / (file + ext[0])
82
+ dest = root_dest / (file + ext[0])
83
+ cmd = ["install_name_tool", "-change", f"{str(src):s}", f"@loader_path/{src.name}", f"./src/py{name:s}/lib{name:s}{ext[0]:s}"]
84
+ try:
85
+ print(f"copying {str(src):s} -> {str(dest.parent):s}.")
86
+ shutil.copy(src, dest)
87
+ if platform.system() == "Darwin":
88
+ print(f"changing rpath for {str(file):s}")
89
+ subprocess.check_call(cmd)
90
+ except subprocess.CalledProcessError:
91
+ print(" ".join(cmd) + " was not successful.")
92
+ except:
93
+ print(f"{file:s} was not copied.")
94
+
95
+ # check rpaths for Darwin
96
+ if platform.system() == "Darwin":
97
+ cmd = ["otool", "-L", f"./src/py{name:s}/lib{name:s}{ext[0]:s}"]
98
+ try:
99
+ print(f"checking rpaths")
100
+ subprocess.check_call(cmd)
101
+ except subprocess.CalledProcessError:
102
+ print(" ".join(cmd) + " was not successful.")
103
+
104
+ version = None
105
+ with open("./VERSION", "r") as f:
106
+ version = f.read().strip()
107
+
108
+ if __name__ == "__main__":
109
+
110
+ mod_constants_2022 = Extension(name="pycodata.constants_2022",
111
+ sources=["./src/pycodata/cpy_codata_constants_2022.c"],
112
+ libraries=libraries,
113
+ library_dirs=library_dirs,
114
+ runtime_library_dirs=runtime_library_dirs,
115
+ extra_objects=extra_objects)
116
+ mod_constants_2018 = Extension(name="pycodata.constants_2018",
117
+ sources=["./src/pycodata/cpy_codata_constants_2018.c"],
118
+ libraries=libraries,
119
+ library_dirs=library_dirs,
120
+ runtime_library_dirs=runtime_library_dirs,
121
+ extra_objects=extra_objects)
122
+ mod_constants_2014 = Extension(name="pycodata.constants_2014",
123
+ sources=["./src/pycodata/cpy_codata_constants_2014.c"],
124
+ libraries=libraries,
125
+ library_dirs=library_dirs,
126
+ runtime_library_dirs=runtime_library_dirs,
127
+ extra_objects=extra_objects)
128
+ mod_constants_2010 = Extension(name="pycodata.constants_2010",
129
+ sources=["./src/pycodata/cpy_codata_constants_2010.c"],
130
+ libraries=libraries,
131
+ library_dirs=library_dirs,
132
+ runtime_library_dirs=runtime_library_dirs,
133
+ extra_objects=extra_objects)
134
+ mod_version = Extension(name="pycodata.version",
135
+ sources=["./src/pycodata/cpy_codata_version.c"],
136
+ libraries=libraries,
137
+ library_dirs=library_dirs,
138
+ runtime_library_dirs=runtime_library_dirs,
139
+ extra_objects=extra_objects)
140
+ setup(version=version,
141
+ ext_modules=[mod_constants_2022, mod_constants_2018, mod_constants_2014, mod_constants_2010, mod_version]
142
+ )
143
+
@@ -28,6 +28,9 @@ version = None
28
28
  with open("./VERSION", "r") as f:
29
29
  version = f.read().strip()
30
30
 
31
+ with open("./src/pycodata/version.py", "w") as f:
32
+ f.write(f"__version__ = \"{version:s}\"")
33
+
31
34
  if __name__ == "__main__":
32
35
 
33
36
  mod_constants_2022 = Extension(name="pycodata.constants_2022",
@@ -61,6 +64,6 @@ if __name__ == "__main__":
61
64
  runtime_library_dirs=runtime_library_dirs,
62
65
  extra_objects=extra_objects)
63
66
  setup(version=version,
64
- ext_modules=[mod_constants_2022, mod_constants_2018, mod_constants_2014, mod_constants_2010, mod_version]
67
+ #ext_modules=[mod_constants_2022, mod_constants_2018, mod_constants_2014, mod_constants_2010, mod_version]
65
68
  )
66
69
 
@@ -0,0 +1,39 @@
1
+ # SPDX-License-Identifier: MIT
2
+
3
+ #=======================================================================
4
+ # MODULE: __INIT__
5
+ #=======================================================================
6
+ """Codata constants.
7
+
8
+ Every adjustment is available under year-suffixed names. The latest values are
9
+ additionally available without the year as a suffix, as an alias meaning
10
+ "current". Quantities that NIST renamed between adjustments are available under
11
+ both spellings in every adjustment.
12
+ The names of constants are the same as the one defined in Fortran and C.
13
+
14
+ All constants are available at the top level of the module.
15
+ Quantity is a stable key for a quantity, valid across adjustments, and
16
+ value(ds, q) selects a constant at run time.
17
+ """
18
+ import platform
19
+ import subprocess
20
+ import sys
21
+ from pathlib import Path
22
+
23
+ from .version import __version__
24
+ from .quantity import Quantity, CODATA_Q_COUNT
25
+ from .lookup import (CODATA_DATASETS, CODATA_LATEST, get, defined, value,
26
+ uncertainty, unit, quantity_name, quantity_from_name)
27
+ from .codata_constants_2022 import *
28
+ from .codata_constants_2018 import *
29
+ from .codata_constants_2014 import *
30
+ from .codata_constants_2010 import *
31
+
32
+
33
+ def main():
34
+ binary = Path(__file__).parent / platform.system().lower() / "bin" / "codata"
35
+ if platform.system() == "Windows":
36
+ binary = binary.with_suffix(".exe")
37
+
38
+ res = subprocess.run([binary] + sys.argv[1:])
39
+ sys.exit(res.returncode)
@@ -0,0 +1,10 @@
1
+ # SPDX-License-Identifier: MIT
2
+
3
+ #=======================================================================
4
+ # MODULE: __MAIN__
5
+ #=======================================================================
6
+ """Main"""
7
+ from . import main
8
+
9
+ if __name__ == "__main__":
10
+ main()