a transpiler for both Python and basedpython
Project description
basedpython
a Python-like language that transpiles to pure Python
acknowledgements
basedpython is a fork of astral-sh/ruff. the
transpiler reuses ruff's parser (ruff_python_parser), AST (ruff_python_ast),
and fix-application machinery (ruff_diagnostics::Edit/Fix), and the type
checker is built on ty. none of this would
exist without the work of the astral team and the wider ruff community
installation
uv add --dev basedpython
usage
# run a module
by run main
# build all .by files to out/
by build
# low-level: transpile a single file to stdout
by transpile file.by
echo 'x[(a, b)]' | by transpile
options
# target a minimum Python version (default: 3.10)
by --min-version 3.11 run main
by --min-version 3.12 build
features
anonymous named tuple syntax
write a structural record inline, no separate class or NamedTuple import.
identical shapes anywhere in the module collapse to a single hoisted
typing.NamedTuple subclass, so structural equality is preserved at the type
level:
def user(x: (name: str, age: int)) -> (name: str, age: int):
return ("charlie", 36)
a = (name: str, age: int)
mixed positional/named shapes are allowed
mutable default argument via lazy evaluation
mutable default arguments are automatically rewritten to the sentinel pattern:
# input
def f(x=[], y={}):
pass
# output
_MISSING = object()
def f(x=_MISSING, y=_MISSING):
if x is _MISSING:
x = []
if y is _MISSING:
y = {}
pass
callable syntax
write callable types with arrow syntax. denotable shapes transpile to
typing.Callable; non-denotable shapes (named params, / / * markers,
variadics, kwargs) synthesize a hoisted typing.Protocol with __call__:
# input
f: (int, str) -> bool
g: () -> None
h: (a: int, *args: str) -> bool
# output
from typing import Callable, Protocol
f: Callable[[int, str], bool]
g: Callable[[], None]
class _Callable_abcde(Protocol):
def __call__(self, a: int, /, *args: str) -> bool: ...
h: _Callable_abcde
identical non-denotable shapes anywhere in the module collapse to a single
synthesized protocol. nested arrows ((int) -> (str) -> bool) nest the
Callables
python version polyfills
basedpython lets you write code in modern python syntax and run it on older
interpreters. when --min-version is below the version that first introduced a
feature, the transpiler rewrites that feature into an equivalent shape that
runs on the target interpreter — a "polyfill". if the target already has the
feature natively, the polyfill is a no-op and the source survives unchanged
a few rules hold for every polyfill:
- opt-in by target — only triggered when
--min-versionis below the feature's introduction version. raise the floor to drop the rewrite - shape-preserving — the rewritten code has the same runtime semantics and, where reasonable, the same static-typing behaviour as the original
- no runtime dependency on basedpython — output is plain python; the generated code does not call back into a basedpython runtime
PEP 695 generics (3.12 → 3.10):
# input
class Stack[T]:
items: list[T]
def identity[T](x: T) -> T:
return x
type Vector = list[float]
# output
from typing import TypeVar, Generic, TypeAlias
_T = TypeVar("_T")
class Stack(Generic[_T]):
items: list[_T]
_T = TypeVar("_T")
def identity(x: _T) -> _T:
return x
Vector: TypeAlias = list[float]
typing import redirect — names not available in stdlib until a later version are automatically redirected to typing_extensions:
# input (targeting 3.10)
from typing import Self, Never, override
# output
from typing_extensions import Self, Never, override
expression rewrites (targeting < 3.11):
datetime.UTC → datetime.timezone.utc
sys.exception() → sys.exc_info()[1]
math.exp2(x) → 2 ** (x)
multiline strings
triple-quoted strings opening with """\n and consistent leading indentation
get their common indent stripped at compile time. no textwrap.dedent import,
no runtime cost:
# input
text = """
hello
world
"""
# output
text = """\
hello
world\
"""
None operators
?. — optional attribute access
a?.b short-circuits to None when a is None. chains use a walrus to
avoid evaluating compound prefixes twice:
# input
x = user?.profile?.name
# output
x = None if user is None else None if (_t := user.profile) is None else _t.name
?? — None-coalesce
a ?? b returns a when non-None, otherwise b:
# input
x = a ?? b
# output
x = a if a is not None else b
composes with ?. — the expanded chain is shared via a walrus so the prefix
runs once:
# input
y = a?.a.b ?? 1
# output
y = _t if (_t := None if a is None else a.a.b) is not None else 1
modifier keywords
basedpython exposes the common decorator-driven idioms as bare keywords so declarations stay readable. each keyword lowers to the equivalent decorator, base class, or annotation and the matching import is added automatically:
| keyword (input) | output |
|---|---|
final class A |
@final on class A |
final def f() |
@final on def f() |
override def f() |
@override on def f() |
abstract def f() |
@abstractmethod on def f() |
static def f() |
@staticmethod on def f() |
class def f() |
@classmethod on def f() |
data class A |
@dataclass(slots=True) on A |
frozen data class A |
@dataclass(frozen=True, slots=True) on A |
enum class B |
class B(Enum) |
protocol Foo |
class Foo(Protocol) |
let x = 5 |
x: Final = 5 |
class a = 1 (class body) |
a: ClassVar = 1 |
newtype MyInt = int |
MyInt = NewType("MyInt", int) |
modifiers stack — final data class A and override final def f() both work.
example:
# input
final data class A:
let x = 1
class y = 2
override def render(self): ...
class def from_str(cls, s): ...
static def helper(): ...
protocol Drawable:
def draw(self): ...
enum class Color:
RED = 1
GREEN = 2
newtype UserId = int
# output
from abc import abstractmethod
from dataclasses import dataclass
from enum import Enum
from typing import ClassVar, Final, NewType, Protocol, final
@final
@dataclass(slots=True)
class A:
x: Final = 1
y: ClassVar = 2
@override
def render(self): ...
@classmethod
def from_str(cls, s): ...
@staticmethod
def helper(): ...
class Drawable(Protocol):
def draw(self): ...
class Color(Enum):
RED = 1
GREEN = 2
UserId = NewType("UserId", int)
visibility modifiers
public and private mark def and class declarations.
behaviour depends on whether the declaration is at module scope or inside a
class body:
# input
public def api(): ...
private def helper(): ...
def untouched(): ...
# output
def api(): ...
def _helper(): ...
def untouched(): ...
__all__ = ["api"]
publicat module scope — modifier stripped, name appended to an auto-generated__all__privateat module scope — modifier stripped, declaration renamed with a leading_(the conventional python "internal" marker)privateinside a class body — declaration renamed with a leading__so python's name-mangling hides it from subclass scopepublicinside a class body — modifier stripped, no rename, no__all__impact
api lock file
by generate-api-file walks every module and emits a deterministic,
line-oriented summary of the project's public type-level surface to api.lock
the file is meant to be diffed, not parsed. any meaningful change to a public symbol — a new parameter, a widened return type, a renamed class, a removed attribute — surfaces as a line-level diff in code review
usage:
# write api.lock at the project root
by generate-api-file
# pick a path
by generate-api-file -o public.lock
# print to stdout (useful in CI to compare against committed lockfile)
by generate-api-file --stdout
commit api.lock and treat any unexpected diff in a PR as a public-api
breakage signal
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file basedpython-0.0.1a1.tar.gz.
File metadata
- Download URL: basedpython-0.0.1a1.tar.gz
- Upload date:
- Size: 8.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1f3d458c1a829965501efba8c201ccfb747fad6451872981e5fe65307ec9cef
|
|
| MD5 |
0ef87aab14a2858ecbec84820c9285a7
|
|
| BLAKE2b-256 |
a2f7b9b81bf5d3b0c4a11c091efb5c94f0a4d244fa8fadecdc08f2b730daba11
|
File details
Details for the file basedpython-0.0.1a1-py3-none-win_arm64.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-win_arm64.whl
- Upload date:
- Size: 23.6 MB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
697016089f06e5e32b8372381f742d3b58f0ae4894ebd4772435865d2a5d302c
|
|
| MD5 |
f17b6278c81cd6dc20e6bef66e7cfd30
|
|
| BLAKE2b-256 |
0221c03f9e57a6504d753582260d65089f2e91ea79e4f989f7b147c03069c1dc
|
File details
Details for the file basedpython-0.0.1a1-py3-none-win_amd64.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-win_amd64.whl
- Upload date:
- Size: 24.9 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
601855ef64f8f6d7b13b28e9b155713e1bd4a367120c074c097a10d3502d0d9c
|
|
| MD5 |
f1a95691b5631637c7b1202161fbcf65
|
|
| BLAKE2b-256 |
70a2763f459ea336c63c66aeae0a07123d6c8b7b3d7d3cd85ecb3f07e21a0e26
|
File details
Details for the file basedpython-0.0.1a1-py3-none-win32.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-win32.whl
- Upload date:
- Size: 22.5 MB
- Tags: Python 3, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae91a7964cc7e2b547adb72dd57340f4b7a1a823367cef33b537eef82c01929f
|
|
| MD5 |
6ad4aa1f4076a7e23a04136cb65f6941
|
|
| BLAKE2b-256 |
100516e09704898802846db486c70de61ab1415047986911c3eda529996a2e08
|
File details
Details for the file basedpython-0.0.1a1-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 25.3 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9b7c18bf6c65ed57aff1884dea8682c270af1a9ae8f82bcf5edb7eca9637d07
|
|
| MD5 |
eed4213f64a09b58e87d314b6952d7d4
|
|
| BLAKE2b-256 |
714e25118a0eac3c94debd3b640049396ef90bdd11069a08ff768256adfc2075
|
File details
Details for the file basedpython-0.0.1a1-py3-none-musllinux_1_2_i686.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-musllinux_1_2_i686.whl
- Upload date:
- Size: 24.8 MB
- Tags: Python 3, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d15f2e79438ef4f7770906faa87330c4630040d2a91808ef2280a3c210f6526
|
|
| MD5 |
45ad4dcee3311146786c0f94155ddb14
|
|
| BLAKE2b-256 |
8ace5292b5baee05aaa05749ab12e997a1ae131fefbb897428feab6230f1d28a
|
File details
Details for the file basedpython-0.0.1a1-py3-none-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 22.7 MB
- Tags: Python 3, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98b553a97f90e60853032e1fcfdc3ce67618e7e2c65e5f4f6a3850f0fbbbd65e
|
|
| MD5 |
53dde1ed0f748e1e2511a4776bf91e3b
|
|
| BLAKE2b-256 |
4625df88ade628d663d8c4b885bf62c3ff98a11c47a75a9a83873f146c4ab3cd
|
File details
Details for the file basedpython-0.0.1a1-py3-none-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 23.4 MB
- Tags: Python 3, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f449a88595d1d8531fa3a84051bb56aea5fcb481ab4100ef0146d8f3d3f109fb
|
|
| MD5 |
a9a0b4be17af79486785291f08184e4e
|
|
| BLAKE2b-256 |
3fd77152c6886d4c99b842a7418e9a554df2f68a96273bcbb3a91c3b2402dea2
|
File details
Details for the file basedpython-0.0.1a1-py3-none-manylinux_2_31_riscv64.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-manylinux_2_31_riscv64.whl
- Upload date:
- Size: 25.1 MB
- Tags: Python 3, manylinux: glibc 2.31+ riscv64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c462edb005ef4bdc5b58a18379a75e3506337f52b8a7624360f422cb8901510c
|
|
| MD5 |
289421026389743d66291a40f714c57b
|
|
| BLAKE2b-256 |
bfb43fcd214745a4aa5179148efb4dbd7484e918621ce629c60859cb563549b7
|
File details
Details for the file basedpython-0.0.1a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 25.0 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b9caeff6a68d52cf7653cb161aa2179d1bd9364dd478df9c2605e4ffdfc7dcd
|
|
| MD5 |
4e375478ac72164f1f11d478a5adee95
|
|
| BLAKE2b-256 |
c6e446c6d739b5342de1254a291f0244bc6ce6656fb400632d841dc5854b405a
|
File details
Details for the file basedpython-0.0.1a1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
- Upload date:
- Size: 24.3 MB
- Tags: Python 3, manylinux: glibc 2.17+ s390x
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0442f35788f329c9247983d496b8be3466bdc503b0f3197b5b7e3db07a4eacf0
|
|
| MD5 |
8225c719fe5a0e5031b678e69f6169dc
|
|
| BLAKE2b-256 |
24620c504c2f06f2f399a8ca38b94033cc0f9de130114d8c5e8bdd6df817188c
|
File details
Details for the file basedpython-0.0.1a1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 27.3 MB
- Tags: Python 3, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb10ece622c6d1df64621c4006ec8393dca27f4e38589b28c9a60b3ea487c944
|
|
| MD5 |
95a68b66aa7a4bb2924b5ee9d634ae33
|
|
| BLAKE2b-256 |
1fcf9296a03918d427bb93568a706767c76e0eeb035ad82b9850e427a6fcc99b
|
File details
Details for the file basedpython-0.0.1a1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 26.5 MB
- Tags: Python 3, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4234652e3a8b35c74ee23eb237787021da2a36ffe13ca088467a3e2b61d06ac4
|
|
| MD5 |
e799b1b1be158783c66d1ef089545bf3
|
|
| BLAKE2b-256 |
946766f12f64714545851c52ca24a3f54c3f2d849fcfba05dd4688f8b9ccef58
|
File details
Details for the file basedpython-0.0.1a1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 22.7 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b146b38ee5d264352561267924db57ebf4217131bba5aff21a92c4471b733c45
|
|
| MD5 |
f3443c3a0695d4edfe0549a92fb76cd5
|
|
| BLAKE2b-256 |
3c8373ec3920d3b482f17fc4119a467640e516410a8f02b132ca30dabec9ea1c
|
File details
Details for the file basedpython-0.0.1a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 23.5 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b17bf09e8f32ccdd6376b7d13ba635f4630539d1cc0e46ade76e6134f7788204
|
|
| MD5 |
6f8564c7e2d8d1726b651b2116b06b7e
|
|
| BLAKE2b-256 |
fba7c211094c5d04096b98e6d2c1b86a3cde5d1feec8536fc12b9c392d18cfd0
|
File details
Details for the file basedpython-0.0.1a1-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 23.0 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d899e5d542bdef9539100ffc8a64946fb853754695409ffa00455ded78799b87
|
|
| MD5 |
023a4a06413f420f11843e1378edf7fb
|
|
| BLAKE2b-256 |
b26653cb5cf71d4707e005bed8efd025598cc5293466b85c12cdeac1039e0f11
|
File details
Details for the file basedpython-0.0.1a1-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 24.2 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6caf8626b89b985353c08fbac018d1853b5479acf75fb41f6df1377b343abb0d
|
|
| MD5 |
5023b97a37a6c30699041d00b4a67a67
|
|
| BLAKE2b-256 |
4309c57b9cf6bad77610e5c1df3571ec739d95aa93aacd2910a90707a9ea9fd6
|
File details
Details for the file basedpython-0.0.1a1-py3-none-linux_armv6l.whl.
File metadata
- Download URL: basedpython-0.0.1a1-py3-none-linux_armv6l.whl
- Upload date:
- Size: 23.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbc89d70e3268a3d3c96397655d56a41297eb755d9f2f745ffbc8c9e965ba8a4
|
|
| MD5 |
649fdcc6ed8ff81eb1782c72be0395a7
|
|
| BLAKE2b-256 |
e4caeb7adffc4f0d3555d5a51cbc278a9512b773e9afcf1bb29040bea42fab3e
|