Skip to main content

dgcv: Differential Geometry with Complex Variables

dgcv is an open-source Python package providing basic tools for differential geometry integrated with systematic organization of structures naturally accompanying complex variables, in short, Differential Geometry with Complex Variables. The library is perfectly suitable for DG work independent of complex structures, and CV is emphasized in the name because dgcv is designed from the ground up to work well in holomorphic settings.

At its core are symbolic representations of standard DG objects such as tensor fields (e.g., vector fields and differential forms) and algebras, and tools for doing standard computations with them. There are coordinate free representations, and representations defined relative to coordinate systems falling into two general categories:

  • standard - basic systems that can represent real or complex coordinates, sufficient for applications that do not require dgcv's complex variable handling features.
  • complex - richer systems for representing complex coordinate patches that interact with dgcv's complex variable handling features. These are comprised of holomorphic coordinate functions, their conjugates, and their real and imaginary parts (e.g., $\{z_j,\overline{z_j},x_j,y_j\}$).

dgcv functions account for coordinate types dynamically when operating on objects built from such coordinate systems. The package has a substantial library for coordinate-free representations as well, and tools for converting between the two paradigms.

As systems of differential geometric objects constructed from complex variables inherit natural relationships from the underlying complex structure, dgcv objects track these relationships across the constructions. This system enables smooth switching between real and holomorphic coordinate representations of mathematical objects. In computations, dgcv objects dynamically manage this format switching on their own so that typical complex variables formulas can be written plainly and will simply work. Some examples of this: In coordinates $z_j = x_j + iy_j$, expressions such as $\frac{\partial}{\partial x_j}|z_j|^2$ or $d z_j \wedge d \overline{z_j} \left( \frac{\partial}{\partial z_j}, \frac{\partial}{\partial y_j} \right)$ are correctly parsed without needing to convert everything to a uniform variable format. Retrieving objects' complex structure-related attributes, like the holomorphic part of a vector field or pluriharmonic terms from a polynomial is straightforward. Complexified cotangent bundles and their exterior algebras are easily decomposed into components from the Dolbeault complex and Dolbeault operators themselves can be applied to functions and k-forms in either coordinate format.

dgcv is tested on Python 3.13.

Documentation

dgcv documentation is hosted at https://www.realandimaginary.com/dgcv/, with documentation pages for individual functions in the library and more.

Tutorials

Many tutorials for using dgcv are available at https://www.realandimaginary.com/dgcv/tutorials/.

Installation

dgcv can be installed directly from PyPI with pip:

pip install dgcv

Optional supporting libraries can be installed simultaneously as needed:

pip install dgcv[sympy] # simultaneously install SymPy
pip install dgcv[ipython] # simultaneously install IPython
pip install dgcv[recommended] # simultaneously installs both IPython and SymPy

Depending on Python install configurations, the above command can vary. The key is to have the relevant Python environment active so that the package manager pip sources from the right location (suggested to use virtual environments: Getting started with virtual environments).

AI Disclosure

dgcv development is cautiosly incorporating AI assistance for coding, always followed by human review. The first significant use was in the developement of version 0.5.0, where AI orchestrated extensive performance profiling and identified important refinements to when and where dgcv algorithms apply CAS simplify calls. Ongoing roles are described further at dgcv AI policies. Considerations behind the decision to allow AI tools in dgcv development are given there as well. Core mathematical algorithms and logic within dgcv remain human-designed, with one exception: Starting with version 0.6.0, dgcv includes a subpackage that is AI-generated, namely dgcv._symbolic_scalars, which supplies the built-in symbolic engine. This is the default engine today, but one can also completely avoid it and use SymPy or SageMath alternatives with dgcv settings configurations (see default_engine).

The subpackage has been carefully reviewed by the author and passed extensive testing. But such review does not rigorously certify correctness, so dgcv will always support compatibility with alternative open source CAS libraries.

License

dgcv is licensed under an Apache 2.0 License. See the LICENSE and NOTICE files for more information.

Author

dgcv was created and is maintained by David Sykes.


Development Notes

dgcv is always growing and updated regularly. I often make new functions for personal projects, and add the ones with general utility for others to the public versions of the library. Contributions, suggestions for additions to the library, and feedback from anyone interested are very much welcome. –D.S.

Metadata

Release files for dgcv 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dgcv 0.6.0
File Size Uploaded
dgcv-0.6.0.tar.gz 639.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dgcv 0.6.0
File Interpreter ABI Platform
dgcv-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.4 MB

Release files / dgcv-0.6.0.tar.gz

Download URL dgcv-0.6.0.tar.gz
Size 639.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f63c142b0c2348c7b33a0c51f7e0c32378ef1845da7c3e0cdad78f5f092525b8
BLAKE2b-256 checksum
How to use checksums
3aaffcf458043b3a226bad27e0befde69697270f055842fc1af6c9e5262dad6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / dgcv-0.6.0-py3-none-any.whl

Download URL dgcv-0.6.0-py3-none-any.whl
Size 759.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2a040dc8b9b1455526a80ffb7194b3d1f5bf9a646fa6a6da8e53fdf7e9734d1d
BLAKE2b-256 checksum
How to use checksums
550d6c959525aed052b0ca16afbca8d6f1f21ac8524a02146fcfcf5a4d781274
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.36

2 release files

0.4.35

2 release files

0.4.34

2 release files

0.4.29

2 release files

0.4.28

2 release files

0.4.27

2 release files

0.4.25

2 release files

0.4.24

2 release files

0.4.23

2 release files

0.4.22

2 release files

0.4.21

2 release files

0.4.20

2 release files

0.4.19

2 release files

0.4.17

2 release files

0.4.16

2 release files

0.4.15

2 release files

0.4.14

2 release files

0.4.13

2 release files

0.4.12

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.14

2 release files

0.3.13

2 release files

0.3.11

2 release files

0.3.10

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.15

2 release files

0.2.14

2 release files

0.2.13

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page