guix_mirror_bot pushed a commit to branch astro-updates
in repository guix.

commit 59083135f7e5d766c72c8e178195d58122969671
Author: Sharlatan Hellseher <[email protected]>
AuthorDate: Tue Oct 14 08:59:30 2025 +0100

    gnu: Add tangos.
    
    * gnu/packages/astronomy.scm (tangos): New variable.
    
    Change-Id: Iadab34535cb09884ae82ea637faa74174eec5fcd
---
 gnu/packages/astronomy.scm | 100 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 100 insertions(+)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 735d670ab2..8f4c86fbbc 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -10454,6 +10454,106 @@ controlled sockets
 any arbitrary astrometric projection defined in the WCS standard.")
     (license license:gpl3+)))
 
+(define-public tangos
+  (package
+    (name "tangos")
+    (version "1.9.1")   ;1.10.0+ requires python-pynbody 2+
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/pynbody/tangos";)
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0vmjkhmqnr6abg7mybib1gllqbimv4ylgzvwxnsw0kk6cvv4qgl9"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      ;; XXX: Full integration tests require running database, see projects
+      ;; CI, unit tests are quite compute instance.
+      ;;
+      ;; tests: 279 passed, 1 deselected, 105 warnings
+      #:test-flags
+      #~(list "--ignore=mpi_tests"
+              ;; OSError: File 'test_simulations/test_tipsy/tiny.000640':
+              ;; format not understood or does not exist
+              "--deselect=tests/test_bh_reader.py::test_bhlog")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'remove-broken-scripts
+            (lambda _
+              ;; TODO: Report upstram.
+              ;; I could not find "Simpy" module, see:
+              ;; - URL: <https://github.com/pynbody/tangos/commit>
+              ;; - commit: 7de987e27d756278c4571dc65f36d377027fa29d
+              ;; - comment: #commitcomment-167855052
+              (delete-file "tangos/scripts/preprocess_bh.py")
+              (substitute* "setup.py"
+                ;; ModuleNotFoundError: No module named
+                ;; 'tangos.scripts.bh_timelink'
+                ((".*tangos_bh_timelink =.*") "")
+                ;; It looks this script uses not a publicly available module:
+                ;; import Simpy.BlackHoles.orbit.
+                ((".*tangos_preprocess_bh =.*") "")))))))
+    (native-inputs
+     (list python-pymysql
+           python-pynbody
+           python-pyquery
+           python-pytest
+           python-setuptools
+           python-webtest
+           python-yt))
+    (inputs
+     (list python-hupper
+           python-matplotlib
+           python-more-itertools
+           python-numpy
+           python-packaging
+           python-pastedeploy
+           python-plaster
+           python-plaster-pastedeploy
+           python-pyparsing
+           python-pyramid
+           python-pyramid-debugtoolbar
+           python-pyramid-jinja2
+           python-pyramid-retry
+           python-pyramid-tm
+           python-repoze-lru
+           python-scipy
+           python-setuptools
+           python-sqlalchemy
+           python-tblib
+           python-tqdm
+           python-translationstring
+           python-venusian
+           python-waitress
+           python-webob
+           python-zope-deprecation
+           python-zope-interface
+           python-zope-sqlalchemy))
+    (home-page "https://github.com/pynbody/tangos";)
+    (synopsis "Agile numerical galaxy organisation system")
+    (description
+     "TANGOS is a tool to build a database (along the lines of
+@url{http://icc.dur.ac.uk/Eagle/database.php, Eagle} or
+@url{https://www.cosmosim.org/cms/documentation/projects/multidark-bolshoi-project/,
+MultiDark}) for cosmological and zoom simulations.
+
+Features:
+@itemize
+@item designed to store and manage results from custom analysis code
+@item provides web and Python interfaces
+@item science-focussed queries across entire merger trees, without requiring
+any knowledge of SQL
+@item manages the process of populating the database with science data,
+including auto-parallelising custom analysis
+@item customization with multiple Python modules such as @code{pynbody} or
+@code{yt} to process raw simulation data
+@item suports file-based database SQLite, server-based MySQL and PostgreSQL
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public tempo
   (package
     (name "tempo")

Reply via email to