Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
736530d
Start to migrate to `pyproject.toml`
chenpeizhi Sep 2, 2025
f825bc4
Remove editor configuration files
chenpeizhi Sep 2, 2025
b369f76
Install `pytest` and `ipython` by default
chenpeizhi Sep 2, 2025
f47d5bc
Rewind to Python 3.9 and build with `dummy_spark`
chenpeizhi Sep 2, 2025
5eb2d59
Update GitHub action
chenpeizhi Sep 2, 2025
4c549e5
Fix typo in `uv sync`
chenpeizhi Sep 2, 2025
487b37c
Fix deprecated APIs according to PEP 623 and bump Python to 3.12
chenpeizhi Sep 2, 2025
6763d8c
Fix more deprecations
chenpeizhi Sep 2, 2025
05aadaa
Convert README to markdown
chenpeizhi Sep 2, 2025
aedc37b
Polish the README
chenpeizhi Sep 2, 2025
bcde6ff
Fix formatting
chenpeizhi Sep 2, 2025
2b4443a
Add installation guide
chenpeizhi Sep 3, 2025
6dc79a0
typo fixed
Wholinator May 8, 2025
22bf6f1
Restore coveralls integration to GitHub Actions workflow (#19)
Copilot Sep 3, 2025
259d8ef
1) ManagedProperties metaclass is no longer used by Basic in sympy an…
Wholinator Oct 25, 2024
30507ca
Fix warnings
chenpeizhi Sep 3, 2025
e4428db
Revert renaming method
chenpeizhi Sep 3, 2025
9f6e185
Remove travis build
chenpeizhi Sep 3, 2025
e989b63
Add GitHub Actions workflows for Ubuntu, macOS, and Windows with upda…
Copilot Sep 3, 2025
e685d7c
Set up development environment for GitHub Copilot coding agent
chenpeizhi Sep 3, 2025
ce50f3a
Fix file location
chenpeizhi Sep 3, 2025
dd8bf9a
changed simplify to simplify_am, simplify was attempting to numerical…
Wholinator Jan 15, 2025
d6a1e45
Start to fix the nuclear `doit` issue
chenpeizhi Sep 4, 2025
a82d78e
Set `doit=False` for sum simplifications
chenpeizhi Sep 4, 2025
58f8134
`deep_simplify` in `NuclearBogoliubovDrudge` should now work
chenpeizhi Sep 4, 2025
fe59399
Make `doit=False` the default for `NuclearBogoliubovDrudge.deep_simpl…
chenpeizhi Sep 4, 2025
b1bcb4b
Bump SymPy version to 1.14
chenpeizhi Sep 4, 2025
d9f2cb7
Fix a issue of simplifying Kronecker deltas involving spins
chenpeizhi Sep 5, 2025
8ea2ae6
Sharing state between tests was failing them. Running pytest in termi…
Wholinator Oct 25, 2024
a28d112
Fix DrsSymbol and DrsIndexed pickle compatibility with SymPy v1.9+ (#25)
Copilot Sep 6, 2025
9306391
Fix a typo in the comment
chenpeizhi Sep 6, 2025
3c454ae
Set Python version to >=3.12
chenpeizhi Sep 7, 2025
0c88b26
Replace the deprecated `visit_Num` with `visit_Constant` in Python 3.8+
chenpeizhi Sep 7, 2025
075aa0a
Address Gaurav's comments on `pyproject.toml`
chenpeizhi Sep 15, 2025
58cad56
Address Gaurav's comments on the README file
chenpeizhi Sep 15, 2025
acfac99
Polish the README
chenpeizhi Sep 15, 2025
f7f87fa
Add proper citations
chenpeizhi Sep 15, 2025
b9a675e
Add citation badge and correct typos
chenpeizhi Sep 15, 2025
f8e079f
No need to provide the link to the Drudge repo
chenpeizhi Sep 15, 2025
6d3c954
Remove debugging blocks
chenpeizhi Sep 15, 2025
e621f99
Combine the Ubuntu and MacOS CI into one workflow
chenpeizhi Sep 15, 2025
de45b73
Update the description in `pyproject.toml`
chenpeizhi Sep 15, 2025
f97c7a9
Streamline CI and update the badges in README (#27)
chenpeizhi Sep 16, 2025
2253252
Rename the GitHub workflows
chenpeizhi Sep 16, 2025
a743687
Ask the users to use WSL on Windows for now
chenpeizhi Sep 16, 2025
83919aa
Revise the README
chenpeizhi Sep 16, 2025
3c8f641
Add a Documentation section in the README
chenpeizhi Sep 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: CI

on: [push]

jobs:
ci:
name: ${{ matrix.plat.name }} Build + Test
runs-on: ${{ matrix.plat.os }}
strategy:
fail-fast: false
matrix:
plat:
- { os: ubuntu-latest, name: Ubuntu }
- { os: macos-latest, name: macOS }

steps:
- uses: actions/checkout@v5

- name: Download submodules
shell: bash
run: git submodule update --init --recursive

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: pyproject.toml

- name: Install uv
uses: astral-sh/setup-uv@v6

- name: Build Drudge
run: uv sync --locked --extra dev

- name: Install coverage tools
run: uv pip install coverage coveralls

- name: Run tests with coverage
env:
DUMMY_SPARK: 1
run: uv run coverage run --source=drudge -m pytest tests

- name: Upload coverage to Coveralls (Ubuntu only)
if: ${{ always() && matrix.plat.os == 'ubuntu-latest' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: uv run coveralls --service=github

37 changes: 37 additions & 0 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Copilot Setup Steps

on:
workflow_dispatch:
push:
paths: [".github/workflows/copilot-setup-steps.yml"]
pull_request:
paths: [".github/workflows/copilot-setup-steps.yml"]

jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- name: Checkout
uses: actions/checkout@v5

- name: Download submodules
shell: bash
run: |
git submodule update --init --recursive

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: "pyproject.toml"

- name: Setup uv
uses: astral-sh/setup-uv@v6

- name: Install the project
run: |
uv sync --locked --extra dev
uv build

39 changes: 0 additions & 39 deletions .github/workflows/pythonapp.yml

This file was deleted.

38 changes: 38 additions & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: CI

on: [push]

jobs:
windows:
name: Windows Build + Test
runs-on: windows-latest

steps:
- uses: actions/checkout@v5

- name: Download submodules
shell: bash
run: git submodule update --init --recursive

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: pyproject.toml

- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1

- name: Install uv
uses: astral-sh/setup-uv@v6

- name: Build Drudge
run: uv sync --locked --extra dev

- name: Install coverage tools
run: uv pip install coverage

- name: Run tests with coverage
env:
DUMMY_SPARK: 1
run: uv run coverage run --source=drudge -m pytest tests

8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ celerybeat-schedule
.env

# virtualenv
.venv/
venv/
ENV/

Expand All @@ -102,3 +103,10 @@ ENV/

# For usage in dockerignore.
.git

# Editors
.idea/
.ycm_extra_conf.py

# macOS cruft
.DS_Store
17 changes: 0 additions & 17 deletions .idea/dictionaries/tschijnmo.xml

This file was deleted.

15 changes: 0 additions & 15 deletions .idea/drudge.iml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/encodings.xml

This file was deleted.

7 changes: 0 additions & 7 deletions .idea/inspectionProfiles/profiles_settings.xml

This file was deleted.

4 changes: 0 additions & 4 deletions .idea/misc.xml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

29 changes: 0 additions & 29 deletions .travis.yml

This file was deleted.

16 changes: 0 additions & 16 deletions .ycm_extra_conf.py

This file was deleted.

38 changes: 38 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
cff-version: 1.2.0
message: "If you use Drudge, please cite the following works."
authors:
- family-names: Zhao
given-names: Jinmo
- family-names: Chen
given-names: Guo P.
- family-names: Harsha
given-names: Gaurav
- family-names: Wholey
given-names: Matthew
- family-names: Henderson
given-names: Thomas M.
- family-names: Scuseria
given-names: Gustavo E.
title: "Drudge: A symbolic algebra system for tensorial and noncommutative algebras"
type: software
repository-code: "https://github.com/DrudgeCAS/drudge"
abstract: "Drudge is a symbolic algebra system built on top of SymPy, focusing primarily on tensorial and noncommutative algebras. It is motivated by tedious symbolic derivations in quantum chemistry and many-body theory but is also useful for any symbolic manipulation and simplification involving indexed quantities, symbolic summations, and noncommutative algebras."
keywords:
- symbolic algebra
- tensor algebra
- quantum chemistry
- many-body theory
license: MIT
version: 0.11.0
date-released: 2025-09-15

references:
- type: thesis
authors:
- family-names: Zhao
given-names: Jinmo
title: "Symbolic Solution for Computational Quantum Many-Body Theory Development"
year: 2018
publisher: Rice University
url: "https://www.proquest.com/openview/61a9a86c07dbb6e5270bdeb1c84384db/1?pq-origsite=gscholar&cbl=18750&diss=y"

6 changes: 6 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
recursive-include drudge *.h

recursive-include deps/libcanon/include *.h

recursive-include drudge/templates *

Loading
Loading