flex-rf 0.1.0.dev0__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- flex_rf/__init__.py +25 -0
- flex_rf/extension.cp313-win_amd64.pyd +0 -0
- flex_rf/py.typed +0 -0
- flex_rf/tidy3d/__init__.py +55 -0
- flex_rf/web.py +17 -0
- flex_rf-0.1.0.dev0.dist-info/METADATA +85 -0
- flex_rf-0.1.0.dev0.dist-info/RECORD +8 -0
- flex_rf-0.1.0.dev0.dist-info/WHEEL +5 -0
flex_rf/__init__.py
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"""flex-rf: standalone RF Python client.
|
|
2
|
+
|
|
3
|
+
Wrapper lane (0.1):
|
|
4
|
+
from flex_rf.tidy3d import TerminalComponentModeler, LumpedPort
|
|
5
|
+
from flex_rf import web
|
|
6
|
+
data = web.run(modeler)
|
|
7
|
+
|
|
8
|
+
This bootstrap package intentionally keeps the top-level surface minimal.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
from importlib.metadata import PackageNotFoundError, version as package_version
|
|
14
|
+
|
|
15
|
+
from . import web
|
|
16
|
+
|
|
17
|
+
try:
|
|
18
|
+
from .extension import __version__
|
|
19
|
+
except ImportError:
|
|
20
|
+
try:
|
|
21
|
+
__version__ = package_version("flex-rf")
|
|
22
|
+
except PackageNotFoundError:
|
|
23
|
+
__version__ = "0.0.0"
|
|
24
|
+
|
|
25
|
+
__all__ = ["web", "__version__"]
|
|
Binary file
|
flex_rf/py.typed
ADDED
|
File without changes
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"""flex_rf.tidy3d — wrapper-phase compatibility imports for RF workflows.
|
|
2
|
+
|
|
3
|
+
Usage:
|
|
4
|
+
from flex_rf.tidy3d import (
|
|
5
|
+
TerminalComponentModeler,
|
|
6
|
+
LumpedPort,
|
|
7
|
+
Simulation,
|
|
8
|
+
Structure,
|
|
9
|
+
Medium,
|
|
10
|
+
LossyMetalMedium,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
This namespace re-exports everything from ``tidy3d.rf`` plus a small set of
|
|
14
|
+
supporting root ``tidy3d`` types needed by the bootstrap wrapper workflow.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
from tidy3d.rf import *
|
|
20
|
+
from tidy3d.rf import __all__ as _rf_all
|
|
21
|
+
from tidy3d import (
|
|
22
|
+
Boundary,
|
|
23
|
+
BoundarySpec,
|
|
24
|
+
Box,
|
|
25
|
+
GridSpec,
|
|
26
|
+
LossyMetalMedium,
|
|
27
|
+
Medium,
|
|
28
|
+
ModeSpec,
|
|
29
|
+
PEC,
|
|
30
|
+
PML,
|
|
31
|
+
Simulation,
|
|
32
|
+
Structure,
|
|
33
|
+
material_library,
|
|
34
|
+
)
|
|
35
|
+
from tidy3d.components.dispersion_fitter import constant_loss_tangent_model
|
|
36
|
+
from tidy3d.plugins.mode import ModeSolver
|
|
37
|
+
|
|
38
|
+
_extra_all = [
|
|
39
|
+
"Boundary",
|
|
40
|
+
"BoundarySpec",
|
|
41
|
+
"Box",
|
|
42
|
+
"GridSpec",
|
|
43
|
+
"LossyMetalMedium",
|
|
44
|
+
"Medium",
|
|
45
|
+
"ModeSpec",
|
|
46
|
+
"ModeSolver",
|
|
47
|
+
"PEC",
|
|
48
|
+
"PML",
|
|
49
|
+
"Simulation",
|
|
50
|
+
"Structure",
|
|
51
|
+
"constant_loss_tangent_model",
|
|
52
|
+
"material_library",
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
__all__ = list(dict.fromkeys([*_rf_all, *_extra_all]))
|
flex_rf/web.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""flex_rf.web — minimal execution facade for wrapper-phase RF workflows."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import importlib
|
|
6
|
+
from typing import Any
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def run(simulation: Any, *args: Any, **kwargs: Any) -> Any:
|
|
10
|
+
"""Delegate wrapped execution to ``tidy3d.web.run`` lazily."""
|
|
11
|
+
|
|
12
|
+
tidy3d_web = importlib.import_module("tidy3d.web")
|
|
13
|
+
|
|
14
|
+
return tidy3d_web.run(simulation, *args, **kwargs)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
__all__ = ["run"]
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: flex-rf
|
|
3
|
+
Version: 0.1.0.dev0
|
|
4
|
+
Summary: Bootstrap wrapper package for RF workflows built on released tidy3d
|
|
5
|
+
Author-Email: "Flexcompute Inc." <support@flexcompute.com>
|
|
6
|
+
Project-URL: homepage, https://www.flexcompute.com/
|
|
7
|
+
Requires-Python: <3.15,>=3.11
|
|
8
|
+
Requires-Dist: tidy3d<2.12,>=2.10.2
|
|
9
|
+
Description-Content-Type: text/markdown
|
|
10
|
+
|
|
11
|
+
# flex-rf
|
|
12
|
+
|
|
13
|
+
Bootstrap wrapper package for the initial `flex-rf` Python client, built on
|
|
14
|
+
top of released `tidy3d`.
|
|
15
|
+
|
|
16
|
+
This package is intentionally narrow. The supported bootstrap surface is:
|
|
17
|
+
|
|
18
|
+
- `flex_rf.tidy3d`: wrapper-phase compatibility namespace built on top of `tidy3d`
|
|
19
|
+
- `flex_rf.web.run(...)`: minimal execution facade for wrapped workflows
|
|
20
|
+
|
|
21
|
+
Top-level `flex_rf` stays minimal so it does not block the future RF-native API.
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
import flex_rf.tidy3d as rf
|
|
27
|
+
from flex_rf import web
|
|
28
|
+
|
|
29
|
+
sim = rf.Simulation(
|
|
30
|
+
size=(20e-3, 10e-3, 5e-3),
|
|
31
|
+
structures=[
|
|
32
|
+
rf.Structure(
|
|
33
|
+
geometry=rf.Box(center=(0, 0, 0), size=(10e-3, 1e-3, 35e-6)),
|
|
34
|
+
medium=rf.Medium(permittivity=4.4),
|
|
35
|
+
)
|
|
36
|
+
],
|
|
37
|
+
boundary_spec=rf.BoundarySpec.all_sides(rf.PML()),
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
modeler = rf.TerminalComponentModeler(
|
|
41
|
+
simulation=sim,
|
|
42
|
+
ports=[rf.LumpedPort(name="p1")],
|
|
43
|
+
freqs=[1e9, 5e9, 10e9],
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
data = web.run(modeler)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Notes
|
|
50
|
+
|
|
51
|
+
- This is the pure wrapper bootstrap, not the RF-native API.
|
|
52
|
+
- The package also carries the in-progress C++/Python build scaffolding from the
|
|
53
|
+
RF template branch so that native components can be added without reworking
|
|
54
|
+
the package layout later.
|
|
55
|
+
- The package currently tracks a tested `tidy3d` compatibility range rather than
|
|
56
|
+
promising support for every future release automatically.
|
|
57
|
+
- Broader web lifecycle helpers can be added later once the bootstrap contract is stable.
|
|
58
|
+
- The compatibility namespace currently includes `tidy3d.rf` plus a small set of supporting root `tidy3d` types needed for basic wrapped RF workflows.
|
|
59
|
+
|
|
60
|
+
## Build
|
|
61
|
+
|
|
62
|
+
Requires CMake 3.26+, a C++17 compiler, and Python 3.11+.
|
|
63
|
+
|
|
64
|
+
```sh
|
|
65
|
+
# Build a wheel
|
|
66
|
+
uv build --wheel
|
|
67
|
+
|
|
68
|
+
# Or install the package in the current environment
|
|
69
|
+
uv pip install .
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Development
|
|
73
|
+
|
|
74
|
+
This scaffold intentionally keeps development workflows minimal:
|
|
75
|
+
|
|
76
|
+
```sh
|
|
77
|
+
# Sync the project and dev dependencies
|
|
78
|
+
uv sync --frozen
|
|
79
|
+
|
|
80
|
+
# Run the wrapper pytest coverage
|
|
81
|
+
just test
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The package-local `justfile` keeps the bootstrap build/test flow aligned with
|
|
85
|
+
the existing PhotonForge and Tidy3D Extras package workflows.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
flex_rf/__init__.py,sha256=9ldILhi1geppp1lNojB3HLwFG9niX4y0S5IqUEscpHY,621
|
|
2
|
+
flex_rf/extension.cp313-win_amd64.pyd,sha256=P89AJkkBm_H3EwdWsSIxMMVzqV-yG8YY102Ag79Vpu4,11264
|
|
3
|
+
flex_rf/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
flex_rf/tidy3d/__init__.py,sha256=l7Tg1ZxjwnjEoh53Mjnt-XVVPiYXNB6IfmGTzY3S_YM,1157
|
|
5
|
+
flex_rf/web.py,sha256=lhNVvpKOEm9xuLfEtq5vCFoVaLJbXnnOOplJKtiYNZ4,417
|
|
6
|
+
flex_rf-0.1.0.dev0.dist-info/METADATA,sha256=IHaKCtb-e70mqfYuxGzh6VqMVjqVHuph1crZPBEHBJw,2456
|
|
7
|
+
flex_rf-0.1.0.dev0.dist-info/WHEEL,sha256=UZrbbE4r80xj7Ncfa6JoeTVe-77bdXLkKUA63V8pKWQ,106
|
|
8
|
+
flex_rf-0.1.0.dev0.dist-info/RECORD,,
|