Skip to content

Commit c9977bd

Browse files
authored
Merge pull request #41 from atomic-data-sciences/enhancement/rheed_streamer
RHEED Streamer
2 parents a24b427 + 783acd7 commit c9977bd

File tree

13 files changed

+4244
-65
lines changed

13 files changed

+4244
-65
lines changed

.github/workflows/release.yml

Lines changed: 130 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -3,61 +3,144 @@ name: Publish
33
on:
44
release:
55
types: [published]
6-
76
workflow_dispatch:
87

98
jobs:
10-
deploy:
11-
runs-on: ubuntu-latest
9+
build_wheels:
10+
name: Build wheels (${ { matrix.os } })
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
os: [ubuntu-latest, macos-13, windows-latest] # macos-13 (Intel) can produce universal2
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- uses: actions/setup-python@v5
21+
with:
22+
python-version: "3.11" # host Python; cibuildwheel builds for multiple Pythons
23+
24+
# QEMU only needed for cross-arch Linux wheels
25+
- name: Set up QEMU (Linux only)
26+
if: runner.os == 'Linux'
27+
uses: docker/setup-qemu-action@v3
28+
with:
29+
platforms: arm64
30+
31+
# Install Rust toolchain on host (macOS/Windows builds run on host)
32+
- name: Install Rust toolchain (host)
33+
if: runner.os != 'Linux'
34+
uses: dtolnay/rust-toolchain@stable
35+
36+
- name: Add macOS universal2 targets
37+
if: runner.os == 'macOS'
38+
run: |
39+
rustup target add x86_64-apple-darwin aarch64-apple-darwin
40+
41+
- name: Upgrade pip & install build tooling
42+
run: |
43+
python -m pip install --upgrade pip
44+
python -m pip install cibuildwheel==2.* setuptools setuptools-rust wheel build
45+
46+
- name: Build wheels with cibuildwheel
47+
env:
48+
# Build CPython for version 3.x . Adjust as needed.
49+
CIBW_BUILD: "cp3{10,11,12}-*"
50+
# Skip 32-bit, PyPy, and musllinux
51+
CIBW_SKIP: "pp* *-manylinux_i686 *-musllinux_*"
52+
# Architectures
53+
CIBW_ARCHS_LINUX: "x86_64 aarch64"
54+
CIBW_ARCHS_MACOS: "universal2"
55+
CIBW_ARCHS_WINDOWS: "AMD64"
56+
# Ensure Rust is present inside manylinux Docker images
57+
CIBW_BEFORE_ALL_LINUX: |
58+
curl https://sh.rustup.rs -sSf | sh -s -- -y
59+
CIBW_ENVIRONMENT_LINUX: 'PATH="$HOME/.cargo/bin:$PATH"'
60+
# Make sure setuptools-rust is available in the build env
61+
CIBW_BEFORE_BUILD: "python -m pip install -U pip setuptools setuptools-rust wheel"
62+
# (Optional) If extra system deps, use CIBW_BEFORE_ALL_* hooks per OS.
63+
run: python -m cibuildwheel --output-dir dist
64+
65+
- name: Upload built wheels (artifact)
66+
uses: actions/upload-artifact@v4
67+
with:
68+
name: wheels
69+
path: dist/*.whl
1270

71+
sdist:
72+
name: Build sdist
73+
runs-on: ubuntu-latest
1374
steps:
14-
- uses: actions/checkout@v4
75+
- uses: actions/checkout@v4
76+
77+
- uses: actions/setup-python@v5
78+
with:
79+
python-version: "3.11"
80+
81+
- name: Build sdist
82+
run: |
83+
python -m pip install --upgrade pip build
84+
python -m build --sdist
85+
env:
86+
# If PEP 517 backend pulls in setuptools-rust, pip will handle it.
87+
# Otherwise: PIP_PRE=1 and explicit deps as needed.
88+
PIP_DISABLE_PIP_VERSION_CHECK: "1"
1589

16-
- uses: actions/setup-python@v5
17-
with:
18-
python-version: 3.11
90+
- name: Upload sdist (artifact)
91+
uses: actions/upload-artifact@v4
92+
with:
93+
name: sdist
94+
path: dist/*.tar.gz
1995

20-
- name: Install dependencies
21-
run: |
22-
python -m pip install --upgrade pip
23-
pip install setuptools setuptools_scm wheel build
96+
publish:
97+
name: Publish to PyPI
98+
needs: [build_wheels, sdist]
99+
runs-on: ubuntu-latest
100+
steps:
101+
- name: Download wheels
102+
uses: actions/download-artifact@v4
103+
with:
104+
name: wheels
105+
path: dist
24106

25-
- name: Build packages
26-
run: python -m build
27-
working-directory: ./
107+
- name: Download sdist
108+
uses: actions/download-artifact@v4
109+
with:
110+
name: sdist
111+
path: dist
28112

29-
- name: Publish package
30-
uses: pypa/gh-action-pypi-publish@release/v1
31-
with:
32-
user: __token__
33-
password: ${{ secrets.PYPI_TOKEN }}
34-
packages-dir: ./dist/
113+
- name: Publish package
114+
uses: pypa/gh-action-pypi-publish@release/v1
115+
with:
116+
user: __token__
117+
password: ${{ secrets.PYPI_TOKEN }}
118+
packages_dir: dist
35119

36120
docs:
37-
runs-on: ubuntu-latest
38-
needs:
39-
- deploy
40-
41-
steps:
42-
- uses: actions/checkout@v4
43-
44-
- uses: actions/setup-python@v5
45-
with:
46-
python-version: 3.11
47-
48-
- name: Install dependencies
49-
run: |
50-
python -m pip install --upgrade pip
51-
pip install -r requirements/requirements-ubuntu-latest_py3.11.txt
52-
pip install -r requirements/requirements-ubuntu-latest_py3.11_extras.txt
53-
pip install sphinx
54-
pip install -e .
55-
56-
- name: Build
57-
run: sphinx-build ./docs ./docs/_build
58-
59-
- name: Deploy
60-
uses: peaceiris/actions-gh-pages@v3.8.0
61-
with:
62-
github_token: ${{ secrets.GH_TOKEN }}
63-
publish_dir: ./docs/_build
121+
runs-on: ubuntu-latest
122+
needs:
123+
- publish
124+
steps:
125+
- uses: actions/checkout@v4
126+
127+
- uses: actions/setup-python@v5
128+
with:
129+
python-version: "3.11"
130+
131+
- name: Install dependencies
132+
run: |
133+
python -m pip install --upgrade pip
134+
pip install -r requirements/requirements-ubuntu-latest_py3.11.txt
135+
pip install -r requirements/requirements-ubuntu-latest_py3.11_extras.txt
136+
pip install sphinx
137+
pip install -e .
138+
139+
- name: Build docs
140+
run: sphinx-build ./docs ./docs/_build
141+
142+
- name: Deploy docs
143+
uses: peaceiris/actions-gh-pages@v3.8.0
144+
with:
145+
github_token: ${{ secrets.GH_TOKEN }}
146+
publish_dir: ./docs/_build

MANIFEST.in

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,7 @@
11
graft src/atomicds
2+
3+
include src/atomicds/streaming/Cargo.toml
4+
recursive-include src/atomicds/streaming/src *.rs
5+
6+
prune src/atomicds/streaming/target
7+
prune **/target

docs/conf.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
88

99
project = "atomicds"
10-
copyright = "2024, Atomic Data Sciences"
11-
author = "Atomic Data Sciences"
12-
release = "2024"
10+
copyright = "2025, Atomscale"
11+
author = "Atomscale"
12+
release = "2025"
1313

1414
# -- General configuration ---------------------------------------------------
1515
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
@@ -59,7 +59,7 @@
5959
html_theme_options = {
6060
"github_button": True,
6161
"github_type": "star&v=2",
62-
"github_user": "artificial-atomic-intelligence",
62+
"github_user": "atomic-data-sciences",
6363
"github_repo": "api-client",
6464
"github_banner": True,
6565
}
@@ -94,7 +94,7 @@
9494
(
9595
master_doc,
9696
"atomicds",
97-
"Atomic Data Sciences API Client Documentation",
97+
"Atomscale API Client Documentation",
9898
[author],
9999
1,
100100
)
@@ -110,10 +110,10 @@
110110
(
111111
master_doc,
112112
"atomicds",
113-
"Atomic Data Sciences API Client Documentation",
113+
"Atomscale API Client Documentation",
114114
author,
115115
"atomicds",
116-
"Atomic Data Sciences API.",
116+
"Atomscale API.",
117117
"",
118118
),
119119
]

docs/index.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
Welcome to the **atomicds** code documentation!
22
===============================================
3-
**atomicds** contains the core client implementation for the Atomic Data Sciences API client.
3+
**atomicds** contains the core client implementation for the Atomscale API client.
44

55
This is intended to be barebones documentation for the client classes and their methods.
6-
For more comprehensive documentation `see the main updated documentation <https://docs.atomicdatasciences.com/>`_.
6+
For more comprehensive documentation `see the main updated documentation <https://docs.atomscale.ai/>`_.
77

88
Support
99
-------
1010

11-
If you are having issues, please let us know through `github <https://github.com/artificial-atomic-intelligence/api-client>`_ or through emailing support@atomicdatasciences.com.
11+
If you are having issues, please let us know through `github <https://github.com/atomic-data-sciences/api-client>`_ or through emailing support@atomscale.ai.
1212

1313
Contents
1414
--------

0 commit comments

Comments
 (0)