sxs 2023.1.4__tar.gz → 2023.1.6__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 (121) hide show
  1. {sxs-2023.1.4 → sxs-2023.1.6}/CITATION.cff +2 -2
  2. {sxs-2023.1.4 → sxs-2023.1.6}/PKG-INFO +3 -2
  3. sxs-2023.1.6/docs/julia.md +60 -0
  4. {sxs-2023.1.4 → sxs-2023.1.6}/mkdocs.yml +2 -0
  5. {sxs-2023.1.4 → sxs-2023.1.6}/pyproject.toml +4 -2
  6. sxs-2023.1.6/sxs/__version__.py +1 -0
  7. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/julia/__init__.py +22 -6
  8. sxs-2023.1.4/sxs/__version__.py +0 -1
  9. {sxs-2023.1.4 → sxs-2023.1.6}/.codecov.yml +0 -0
  10. {sxs-2023.1.4 → sxs-2023.1.6}/.github/dependabot.yml +0 -0
  11. {sxs-2023.1.4 → sxs-2023.1.6}/.github/scripts/parse_bump_rule.py +0 -0
  12. {sxs-2023.1.4 → sxs-2023.1.6}/.github/workflows/build.yml +0 -0
  13. {sxs-2023.1.4 → sxs-2023.1.6}/.github/workflows/pr_rtd_link.yml +0 -0
  14. {sxs-2023.1.4 → sxs-2023.1.6}/.gitignore +0 -0
  15. {sxs-2023.1.4 → sxs-2023.1.6}/.readthedocs.yaml +0 -0
  16. {sxs-2023.1.4 → sxs-2023.1.6}/LICENSE +0 -0
  17. {sxs-2023.1.4 → sxs-2023.1.6}/README.md +0 -0
  18. {sxs-2023.1.4 → sxs-2023.1.6}/docs/api/catalog.md +0 -0
  19. {sxs-2023.1.4 → sxs-2023.1.6}/docs/api/horizons.md +0 -0
  20. {sxs-2023.1.4 → sxs-2023.1.6}/docs/api/load.md +0 -0
  21. {sxs-2023.1.4 → sxs-2023.1.6}/docs/api/metadata.md +0 -0
  22. {sxs-2023.1.4 → sxs-2023.1.6}/docs/api/time_series.md +0 -0
  23. {sxs-2023.1.4 → sxs-2023.1.6}/docs/api/waveforms.md +0 -0
  24. {sxs-2023.1.4 → sxs-2023.1.6}/docs/html/main.html +0 -0
  25. {sxs-2023.1.4 → sxs-2023.1.6}/docs/images/favicon.ico +0 -0
  26. {sxs-2023.1.4 → sxs-2023.1.6}/docs/index.md +0 -0
  27. {sxs-2023.1.4 → sxs-2023.1.6}/docs/javascript/mathjax.js +0 -0
  28. {sxs-2023.1.4 → sxs-2023.1.6}/docs/mathematica.md +0 -0
  29. {sxs-2023.1.4 → sxs-2023.1.6}/docs/stylesheets/extra.css +0 -0
  30. {sxs-2023.1.4 → sxs-2023.1.6}/docs/tutorials/00-Introduction.ipynb +0 -0
  31. {sxs-2023.1.4 → sxs-2023.1.6}/docs/tutorials/01-Metadata.ipynb +0 -0
  32. {sxs-2023.1.4 → sxs-2023.1.6}/docs/tutorials/02-Catalog.ipynb +0 -0
  33. {sxs-2023.1.4 → sxs-2023.1.6}/docs/tutorials/03-Horizons.ipynb +0 -0
  34. {sxs-2023.1.4 → sxs-2023.1.6}/docs/tutorials/04-Waveforms.ipynb +0 -0
  35. {sxs-2023.1.4 → sxs-2023.1.6}/docs/tutorials/05-PreprocessingForFFTs.ipynb +0 -0
  36. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/__init__.py +0 -0
  37. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/caltechdata/__init__.py +0 -0
  38. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/caltechdata/catalog.py +0 -0
  39. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/caltechdata/login.py +0 -0
  40. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/catalog/__init__.py +0 -0
  41. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/catalog/catalog.py +0 -0
  42. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/catalog/create.py +0 -0
  43. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/catalog/description.py +0 -0
  44. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/handlers.py +0 -0
  45. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/horizons/__init__.py +0 -0
  46. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/horizons/spec_horizons_h5.py +0 -0
  47. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/horizons/xor_multishuffle_bzip2.py +0 -0
  48. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/julia/GWFrames.py +0 -0
  49. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/juliapkg.json +0 -0
  50. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/metadata/__init__.py +0 -0
  51. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/metadata/metadata.py +0 -0
  52. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/time_series.py +0 -0
  53. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/__init__.py +0 -0
  54. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/bitwise.py +0 -0
  55. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/decimation/__init__.py +0 -0
  56. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/decimation/greedy_spline.py +0 -0
  57. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/decimation/linear_bisection.py +0 -0
  58. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/decimation/peak_greed.py +0 -0
  59. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/decimation/suppression.py +0 -0
  60. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/dicts.py +0 -0
  61. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/downloads.py +0 -0
  62. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/files.py +0 -0
  63. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/formats.py +0 -0
  64. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/inspire.py +0 -0
  65. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/lvcnr/__init__.py +0 -0
  66. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/lvcnr/comparisons.py +0 -0
  67. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/lvcnr/conversion.py +0 -0
  68. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/lvcnr/dataset.py +0 -0
  69. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/lvcnr/horizons.py +0 -0
  70. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/lvcnr/metadata.py +0 -0
  71. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/lvcnr/waveform_amp_phase.py +0 -0
  72. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/lvcnr/waveforms.py +0 -0
  73. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/monotonicity.py +0 -0
  74. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/pretty_print.py +0 -0
  75. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/references/__init__.py +0 -0
  76. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/references/ads.py +0 -0
  77. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/references/arxiv.py +0 -0
  78. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/references/fairchild_report.py +0 -0
  79. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/references/inspire.py +0 -0
  80. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/references/journal_abbreviations.py +0 -0
  81. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/references/references.py +0 -0
  82. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/select.py +0 -0
  83. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/smooth_functions.py +0 -0
  84. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/sxs_directories.py +0 -0
  85. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/sxs_identifiers.py +0 -0
  86. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/utilities/url.py +0 -0
  87. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/__init__.py +0 -0
  88. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/alignment.py +0 -0
  89. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/format_handlers/__init__.py +0 -0
  90. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/format_handlers/lvc.py +0 -0
  91. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/format_handlers/nrar.py +0 -0
  92. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/format_handlers/rotating_paired_diff_multishuffle_bzip2.py +0 -0
  93. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/format_handlers/rotating_paired_xor_multishuffle_bzip2.py +0 -0
  94. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/format_handlers/spectre_cce_v1.py +0 -0
  95. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/memory.py +0 -0
  96. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/mode_utilities.py +0 -0
  97. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/transformations.py +0 -0
  98. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/waveform_grid.py +0 -0
  99. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/waveform_mixin.py +0 -0
  100. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/waveform_modes.py +0 -0
  101. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/waveforms/waveform_signal.py +0 -0
  102. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/zenodo/__init__.py +0 -0
  103. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/zenodo/api/__init__.py +0 -0
  104. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/zenodo/api/deposit.py +0 -0
  105. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/zenodo/api/login.py +0 -0
  106. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/zenodo/api/records.py +0 -0
  107. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/zenodo/catalog.py +0 -0
  108. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/zenodo/creators.py +0 -0
  109. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/zenodo/simannex.py +0 -0
  110. {sxs-2023.1.4 → sxs-2023.1.6}/sxs/zenodo/surrogatemodeling.py +0 -0
  111. {sxs-2023.1.4 → sxs-2023.1.6}/tests/__init__.py +0 -0
  112. {sxs-2023.1.4 → sxs-2023.1.6}/tests/conftest.py +0 -0
  113. {sxs-2023.1.4 → sxs-2023.1.6}/tests/test_catalog.py +0 -0
  114. {sxs-2023.1.4 → sxs-2023.1.6}/tests/test_horizons.py +0 -0
  115. {sxs-2023.1.4 → sxs-2023.1.6}/tests/test_loader.py +0 -0
  116. {sxs-2023.1.4 → sxs-2023.1.6}/tests/test_metadata.py +0 -0
  117. {sxs-2023.1.4 → sxs-2023.1.6}/tests/test_time_series.py +0 -0
  118. {sxs-2023.1.4 → sxs-2023.1.6}/tests/test_transformations.py +0 -0
  119. {sxs-2023.1.4 → sxs-2023.1.6}/tests/test_utilities.py +0 -0
  120. {sxs-2023.1.4 → sxs-2023.1.6}/tests/test_waveform_rotations.py +0 -0
  121. {sxs-2023.1.4 → sxs-2023.1.6}/tests/test_waveforms.py +0 -0
@@ -10,5 +10,5 @@ authors:
10
10
  title: "The sxs package"
11
11
  license: MIT
12
12
  doi: 10.5281/zenodo.4034006
13
- version: 2023.1.4
14
- date-released: 2024-05-31
13
+ version: 2023.1.6
14
+ date-released: 2024-06-27
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: sxs
3
- Version: 2023.1.4
3
+ Version: 2023.1.6
4
4
  Summary: Interface to data produced by the Simulating eXtreme Spacetimes collaboration
5
5
  Project-URL: Homepage, https://github.com/sxs-collaboration/sxs
6
6
  Project-URL: Documentation, https://sxs.readthedocs.io/
@@ -62,7 +62,8 @@ Requires-Dist: jupyterlab>=2.2.8; extra == 'ecosystem'
62
62
  Requires-Dist: line-profiler>=3.0.2; extra == 'ecosystem'
63
63
  Requires-Dist: matplotlib>=2.1.1; extra == 'ecosystem'
64
64
  Requires-Dist: memory-profiler>=0.57.0; extra == 'ecosystem'
65
- Requires-Dist: numpy-quaternion>=0.3.1; extra == 'ecosystem'
65
+ Requires-Dist: numpy-quaternion>=2023.0.4; extra == 'ecosystem'
66
+ Requires-Dist: numpy<2.0,>=1.20; extra == 'ecosystem'
66
67
  Requires-Dist: qgrid>=1.3.1; extra == 'ecosystem'
67
68
  Requires-Dist: rise>=5.6.1; extra == 'ecosystem'
68
69
  Requires-Dist: scri>=2020.8.18; (sys_platform != 'win32') and extra == 'ecosystem'
@@ -0,0 +1,60 @@
1
+ # Calling `sxs` from Julia
2
+
3
+ Julia makes it extraordinarily simple to call Python packages from within Julia.
4
+
5
+ !!! note
6
+
7
+ This page describes calling the `sxs` Python package from Julia. Instructions
8
+ for calling Julia components from Python are found elsewhere.
9
+
10
+ ## Optional preliminary step: A new environment
11
+
12
+ Julia also makes it much easier to work with "environments" than
13
+ Python does. If you want to create one from working with `sxs` in
14
+ Julia, just create a new directory, `cd` into it, and run
15
+ ```bash
16
+ julia --project=.
17
+ ```
18
+ This will create a file named `Project.toml` in that directory
19
+ containing this new environment. Every time you need to work with
20
+ this environment, you can tell Julia to use it by adding `--project=`
21
+ followed by the path to that directory. Alternatively, if Julia is already running,
22
+ just hit `]` to enter the package manager, and run
23
+ ```julia
24
+ activate /path/to/new/directory
25
+ ```
26
+
27
+ ## Getting Julia working with Python
28
+
29
+ Once Julia is running (with the project you want), just run
30
+ ```julia
31
+ import Pkg
32
+ Pkg.add(["PythonCall", "CondaPkg"])
33
+ using PythonCall
34
+ import CondaPkg
35
+ CondaPkg.add("numba", channel="numba")
36
+ CondaPkg.add("llvmlite", channel="numba")
37
+ CondaPkg.add("sxs", channel="conda-forge")
38
+ ```
39
+ Once everything is installed, the main difference from Python is that
40
+ you have to import the module as
41
+ ```julia
42
+ sxs = pyimport("sxs")
43
+ ```
44
+ Now, you can call functions from the `sxs` package nearly identically
45
+ to how they are called in Python. For example, the simple call to
46
+ load a waveform from the README of this package is
47
+ ```julia
48
+ waveform = sxs.load("SXS:BBH:0123/Lev/rhOverM", extrapolation_order=2)
49
+ ```
50
+ That exact line works just in Julia like it does in Python. (Note
51
+ that strings must use double quotes in Julia, and Python's `True` and
52
+ `False` are lowercased in Julia.) And accessing members and methods
53
+ of Python objects is just as natural. For example, `waveform.t` and
54
+ `waveform.data` return the same data as in Python.
55
+
56
+ See the [PythonCall
57
+ documentation](https://juliapy.github.io/PythonCall.jl/stable/pythoncall/)
58
+ for more details on how to call Python from Julia, and any conversions
59
+ that may need to be done. Note that `pyconvert(Any, x)` will usually
60
+ convert `x` to its most natural Julia equivalent.
@@ -30,6 +30,7 @@ nav:
30
30
  - "Horizons": "api/horizons.md"
31
31
  - "Waveforms": "api/waveforms.md"
32
32
  - "Calling from Mathematica": "mathematica.md"
33
+ - "Calling from Julia": "julia.md"
33
34
 
34
35
  theme:
35
36
  name: "material" # "readthedocs", "mkdocs", "material"
@@ -63,6 +64,7 @@ extra_javascript:
63
64
  - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js
64
65
 
65
66
  markdown_extensions:
67
+ - admonition
66
68
  - toc:
67
69
  permalink: "#"
68
70
  - pymdownx.arithmatex:
@@ -48,11 +48,12 @@ ecosystem = [
48
48
  "line_profiler >=3.0.2",
49
49
  "memory_profiler >=0.57.0",
50
50
  "matplotlib >=2.1.1",
51
+ "numpy >=1.20, <2.0",
51
52
  "sympy >=1.6.2",
52
53
  "corner >=2.1.0",
53
54
  "qgrid >=1.3.1",
54
55
  "rise >=5.6.1",
55
- "numpy-quaternion >=0.3.1",
56
+ "numpy-quaternion >=2023.0.4",
56
57
  "spinsfast >=2022; sys_platform != 'win32'",
57
58
  "scri >=2020.8.18; sys_platform != 'win32'"
58
59
  ]
@@ -75,7 +76,8 @@ dependencies = [
75
76
  "pytest",
76
77
  "pytest-cov",
77
78
  "pytest-forked >=1.3.0",
78
- "juliapkg >=0.1.13"
79
+ "juliapkg >=0.1.13",
80
+ "numpy >=1.20, <2.0"
79
81
  ]
80
82
  [tool.hatch.envs.default.scripts]
81
83
  # Run these as `hatch run test`
@@ -0,0 +1 @@
1
+ __version__ = "2023.1.6"
@@ -14,7 +14,11 @@ def pkg_update():
14
14
  return PostNewtonian.seval("Pkg.update()")
15
15
 
16
16
 
17
- def PNWaveform(M1, M2, chi1, chi2, Omega_i, **kwargs):
17
+ def PNWaveform(
18
+ M1, M2, chi1, chi2, Omega_i, *,
19
+ ell_min=2, ell_max=8, waveform_pn_order=None,
20
+ **orbital_evolution_kwargs
21
+ ):
18
22
  """Generate a PN waveform.
19
23
 
20
24
  The return value is an `sxs.WaveformModes` object with the
@@ -24,7 +28,8 @@ def PNWaveform(M1, M2, chi1, chi2, Omega_i, **kwargs):
24
28
  - `M2` (array): The secondary mass as a function of time.
25
29
  - `chi1` (array): The primary spin as a function of time.
26
30
  - `chi2` (array): The secondary spin as a function of time.
27
- - `frame` (array): The quaternionic frame as a function of time.
31
+ - `frame` (array): The quaternionic frame as a function of
32
+ time.
28
33
  - `v` (array): The orbital velocity as a function of time.
29
34
  - `orbital_phase` (array): The orbital phase as a function of
30
35
  time.
@@ -34,21 +39,32 @@ def PNWaveform(M1, M2, chi1, chi2, Omega_i, **kwargs):
34
39
  `PostNewtonian.inertial_waveform`. See [the Julia
35
40
  documentation](https://moble.github.io/PostNewtonian.jl/dev/internals/dynamics/#PostNewtonian.orbital_evolution)
36
41
  for details on the optional keyword arguments.
42
+
43
+ Note that the full Julia interface is also accessible from this
44
+ Python module. See [the Julia
45
+ docs](https://moble.github.io/PostNewtonian.jl/dev/interface/python/)
46
+ for details. Also, the GWFrames submodule of this module provides
47
+ another interface.
37
48
 
38
49
  """
39
50
  # Integrate the orbital dynamics
40
- inspiral = PostNewtonian.orbital_evolution(M1, M2, chi1, chi2, Omega_i, **kwargs)
51
+ inspiral = PostNewtonian.orbital_evolution(
52
+ M1, M2, chi1, chi2, Omega_i, **orbital_evolution_kwargs
53
+ )
41
54
  values = PostNewtonian.stack(inspiral.u)
42
55
 
43
56
  # Compute the waveform in the inertial frame
44
- h = PostNewtonian.inertial_waveform(inspiral).to_numpy().T
57
+ waveform_pn_order = waveform_pn_order or PostNewtonian.typemax(PostNewtonian.Int)
58
+ h = PostNewtonian.inertial_waveform(
59
+ inspiral, ell_min=ell_min, ell_max=ell_max, PNOrder=waveform_pn_order
60
+ ).to_numpy().T
45
61
 
46
62
  w = WaveformModes(
47
63
  h,
48
64
  time=inspiral.t,
49
65
  modes_axis=1,
50
- ell_min=2,
51
- ell_max=8,
66
+ ell_min=ell_min,
67
+ ell_max=ell_max,
52
68
  M1=values[0, :].to_numpy(),
53
69
  M2=values[1, :].to_numpy(),
54
70
  chi1=values[2:5, :].to_numpy().T,
@@ -1 +0,0 @@
1
- __version__ = "2023.1.4"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes