Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[For review purpose] #624

Merged
merged 56 commits into from
Dec 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
177441f
feat(plot): plot param method union types new rendermode
lmeyerov Nov 28, 2024
2919242
feat(dataset_id): expose and track
lmeyerov Nov 28, 2024
0206088
fix(plot): missing refactor
lmeyerov Nov 28, 2024
39c15b5
feat(upload)
lmeyerov Nov 28, 2024
4e2f20c
feat(remote)
lmeyerov Nov 28, 2024
28c144e
docs(remote)
lmeyerov Nov 28, 2024
904fa93
fix(lint)
lmeyerov Nov 28, 2024
2096127
fix(types)
lmeyerov Nov 28, 2024
fbb82fb
refactor(types): move to dedicated models folder to avoid recursive i…
lmeyerov Nov 29, 2024
863ec05
fix(plotter tests): deps flow
lmeyerov Nov 29, 2024
3f051ae
fix(ipython tests): plotter
lmeyerov Nov 29, 2024
0edbebe
fix(remote mode): docstr cascade on _dataset_id
lmeyerov Nov 29, 2024
45f4bfb
docs(remote): formatting
lmeyerov Nov 29, 2024
e58d1bd
fix(rtd)
lmeyerov Nov 29, 2024
b5b84cd
docs(gfql remote): update
lmeyerov Nov 29, 2024
efdc438
docs(remote): links
lmeyerov Nov 29, 2024
d64a278
fix(upload): top-level method incorrectly passed args
lmeyerov Dec 9, 2024
2623e15
fix(gfql remote): server currently assumes array, not chain ast obj
lmeyerov Dec 9, 2024
4fb841f
fix(gfql remote): remote_chain sniffer support
lmeyerov Dec 9, 2024
515af4d
fix(remote chain): reset bindings on partial output modes
lmeyerov Dec 9, 2024
d440d2a
feat(server cfg lookups): enable from g object
lmeyerov Dec 9, 2024
0f65a03
fix(remote methods): use server base path
lmeyerov Dec 9, 2024
aa9e947
fix(gfql remote): missing file
lmeyerov Dec 9, 2024
b2cdea1
docs(gfql): remote mode tutorial notebook
lmeyerov Dec 9, 2024
74d1e14
docs(python remote): wip
lmeyerov Dec 9, 2024
e8d142e
refactor(remote types): match server
lmeyerov Dec 10, 2024
e5b9ca1
fix(remote chain): null df handling
lmeyerov Dec 10, 2024
8aee176
feat(remote python): factor out by return type
lmeyerov Dec 10, 2024
4186a0b
docs(remote python)
lmeyerov Dec 10, 2024
a9f96eb
fix(lint)
lmeyerov Dec 10, 2024
46cca7c
fix(remote types)
lmeyerov Dec 10, 2024
a713604
docs(remote mode)
lmeyerov Dec 11, 2024
9ee2107
Merge pull request #615 from graphistry/dev/gfql-endpoint
lmeyerov Dec 11, 2024
28da3e1
fix(imports)
lmeyerov Dec 11, 2024
ec7d631
fix(imports)
lmeyerov Dec 11, 2024
44683dc
fix(lint)
lmeyerov Dec 11, 2024
c5331c1
docs(changelog)
lmeyerov Dec 11, 2024
a8a4e20
Merge pull request #617 from graphistry/dev/fix-imports
lmeyerov Dec 11, 2024
4e9ce4e
docs(remote python): engine output
lmeyerov Dec 13, 2024
d5624bd
docs(remote json): add
lmeyerov Dec 13, 2024
7f5b2db
Merge pull request #618 from graphistry/dev/remote-python
lmeyerov Dec 13, 2024
35f3e49
docs(CONTRIBUTING): renamed to more standard name
lmeyerov Dec 13, 2024
dff147c
docs(setup.py): add project_urls
lmeyerov Dec 13, 2024
3939248
docs(FUNDING.md)
lmeyerov Dec 13, 2024
cf6053e
docs(code of conduct)
lmeyerov Dec 13, 2024
f557d7b
docs(tag)
lmeyerov Dec 13, 2024
292bfc0
fix(docs): missing rename of CONTRIBUTING for snyk
lmeyerov Dec 13, 2024
fdeca4d
fix(mypy): enum vals are unannotated
lmeyerov Dec 24, 2024
63db90b
feat(gfql ast): type edge by direction
lmeyerov Dec 24, 2024
54faed3
fix(chain): flag unhandled binding collision #614
lmeyerov Dec 24, 2024
4a45a28
docs(changelog)
lmeyerov Dec 24, 2024
501e51d
test(gfql): 614 aliasing bug test
lmeyerov Dec 24, 2024
e4f902a
Merge remote-tracking branch 'origin/dev/fix-chain-serialization-620'…
lmeyerov Dec 24, 2024
0cea1b5
docs(funding): add socials
lmeyerov Dec 24, 2024
2acd391
docs(changelog): prep 0.34.3 vbump
lmeyerov Dec 24, 2024
c18d72a
Merge pull request #619 from graphistry/docs/metadata
lmeyerov Dec 24, 2024
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
2 changes: 1 addition & 1 deletion .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ build:
- cp -r demos docs/source/demos
- cp README.md docs/source/README.md
- cp ARCHITECTURE.md docs/source/ARCHITECTURE.md
- cp CONTRIBUTE.md docs/source/CONTRIBUTE.md
- cp CONTRIBUTING.md docs/source/CONTRIBUTING.md
- cp DEVELOP.md docs/source/DEVELOP.md

# build html
Expand Down
2 changes: 1 addition & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Architecture

This document should help get started with modifying code. See also [develop.md](DEVELOP.md) for developer commands and [CONTRIBUTE.md](CONTRIBUTE.md) for community guidelines.
This document should help get started with modifying code. See also [develop.md](DEVELOP.md) for developer commands and [CONTRIBUTING.md](CONTRIBUTING.md) for community guidelines.

## Client/Server Wrangling Tool

Expand Down
48 changes: 48 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,57 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm

## [Development]

## [0.35.3 - 2024-12-24]

### Docs

* Rename CONTRIBUTE.md to CONTRIBUTING.md to match OSS standards (snyk)
* setup.py: add project_urls
* Add FUNDING.md
* Add CODE_OF_CONDUCT.md

### Feat

* GFQL serialization: Edge AST node deserializes as more precise `ASTEdge` subclasses

### Fixes

* GFQL Hop: Detect #614 of node id column name colliding with edge src/dst id column name and raise `NotImplementedError`
* MyPy: Remove explicit type annotation from Engine

## [0.35.2 - 2024-12-13]

### Docs

* Python remote mode notebook: Fixed engine results
* Python remote mode: Add JSON example

## [0.35.1 - 2024-12-11]

### Fixes

* Fix broken imports in new GFQL remote mode

## [0.35.0 - 2024-12-10]

### Docs

* New tutorial on GPU memory management and capacity planning in the GPU section
* New tutorial on remote-mode GFQL
* New tutorial on remote-mode Python

### Feat

* `plot(render=)` supports literal-typed mode values: `"auto"`, `"g"`, `"url"`, `"ipython"`, `"databricks"`, where `"g"` is a new Plottable
* Remote metadata: Expose and track uploaded `._dataset_id`, `._url`, `._nodes_file_id`, and `._edges_file_id`
* Remote upload: Factor out explicit upload method `g2 = g1.upload(); assert all([g2._dataset_id, g2._nodes_file_id, g2._edges_file_id])` from plot interface
* Remote dataset: Remote dataset binding via `g1 = graphistry.bind(dataset_id='abc123')`
* Remote GFQL: Remote GFQL calls via `g2 = g1.chain_remote([...])` and `meta_df = g1.chain_remote_shape([...])`
* Remote GPU Python: Remote Python calls via `g2 = g1.python_remote_g(...)`, `python_remote_table()`, and `python_remote_json()` for different return types

### Changed

* `plot(render=)` now `Union[bool, RenderMode]`, not just `bool`

## [0.34.17 - 2024-10-20]

Expand Down
29 changes: 29 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# PyGraphistry Code of Conduct

PyGraphistry is an open-source project built on collaboration and respect. This Code of Conduct lays out how we expect everyone to interact so we can maintain a positive and productive environment.

## How We Work Together

- Treat others decently—listen, respond constructively, and keep it professional.
- Stay focused on ideas and solutions, not personal disagreements.
- Be helpful, especially to newcomers or those asking for clarification.

## What’s Not Okay

Harassment, personal attacks, or sharing private information without permission are not okay. Be respectful and avoid language or behavior that alienates or disrupts others.

## Where This Applies

This Code of Conduct applies to all spaces related to the PyGraphistry project, like GitHub repositories, pull request discussions, and private communications. If you’re representing PyGraphistry in public (e.g., social media or events), we expect the same standards of behavior.

## If There’s a Problem

If you see or experience behavior that doesn’t align with this Code of Conduct, let us know at **[[email protected]](mailto:[email protected])**. We’ll handle it privately and work together to figure out the next steps.

## What Happens Next

Breaking the rules? We’ll handle it case by case. You might get a warning, a temporary ban, or permanent removal from the project.

---

Thanks for being part of PyGraphistry!
File renamed without changes.
2 changes: 1 addition & 1 deletion DEVELOP.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Development Setup

See also [CONTRIBUTE.md](CONTRIBUTE.md) and [ARCHITECTURE.md](ARCHITECTURE.md)
See also [CONTRIBUTING.md](CONTRIBUTING.md) and [ARCHITECTURE.md](ARCHITECTURE.md)

Development is setup for local native and containerized Python coding & testing, and with automatic GitHub Actions for CI + CD. The server tests are like the local ones, except against a wider test matrix of environments.

Expand Down
32 changes: 32 additions & 0 deletions FUNDING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Supporting PyGraphistry

PyGraphistry is an open-source Python project proudly sponsored by [Graphistry](https://www.graphistry.com), a leader in GPU-accelerated visual graph analytics and AI. Your support helps us maintain and expand PyGraphistry as a free and open tool for the data science and graph analytics community.

## How to Support

If your organization uses PyGraphistry or benefits from GPU-accelerated analytics, please consider supporting this project indirectly by becoming a customer or directly such as through code contributions and sponsored development. Reach out to the Graphistry team to discuss sponsorship opportunities:

- Email: [[email protected]](mailto:[email protected])
- Website: [Graphistry Sponsorship](https://www.graphistry.com)
- Social: Say hello and stay connected via the [community Slack](https://join.slack.com/t/graphistry-community/shared_invite/zt-53ik36w2-fpP0Ibjbk7IJuVFIRSnr6g), [Twitter](https://twitter.com/graphistry) account, & [LinkedIn](https://www.linkedin.com/company/graphistry)

## Why Support PyGraphistry?

Your contributions help us:
- Keep PyGraphistry maintained, up-to-date, and secure
- Be responsive to user feedback, bug reports, and feature requests
- Advance PyGraphistry's capabilities, performance, and usability
- Ensure the project remains free and open-source
- Support the community through documentation, tutorials, and responsive issue tracking

## Corporate Sponsorship Opportunities

We welcome sponsorships from companies that depend on PyGraphistry for analytics, visualization, and AI. Sponsorships may include:
- Recognition in PyGraphistry's release notes and documentation
- Early access to new features and roadmap acceleration
- Collaboration opportunities with the Graphistry team

## Thank You

A huge thanks to the Graphistry team and community for supporting PyGraphistry, and to all our users for their continued support!

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,5 +207,5 @@ Explore [10 Minutes to PyGraphistry](https://pygraphistry.readthedocs.io/en/late

## Contribute

See [CONTRIBUTE](https://pygraphistry.readthedocs.io/en/latest/CONTRIBUTE.html) and [DEVELOP](https://pygraphistry.readthedocs.io/en/latest/DEVELOP.html) for participating in PyGraphistry development, or reach out to our team
See [CONTRIBUTING](https://pygraphistry.readthedocs.io/en/latest/CONTRIBUTING.html) and [DEVELOP](https://pygraphistry.readthedocs.io/en/latest/DEVELOP.html) for participating in PyGraphistry development, or reach out to our team

Loading
Loading