ccharts
Financial OHLC data in, a string out. Line and candlestick charts drawn
with Unicode block characters and returned as text — so the chart goes wherever
text goes: a terminal, a log line, a chat message, an HTML <pre>, a commit
comment, a .txt file, a printf.
328.00████████████
█
█ █████████████▁▁▁▁▁▁▁▁▁▁▁▁
█████████████ █
█
301.00 █▁▁▁▁▁▁▁▁▁▁▁▁
2026-07-20 2026-07-24
Color is optional: by default rising and falling segments carry ANSI escapes,
and plain renders with none at all, for the destinations where escapes would
only be noise.
There is no canvas, no image, no renderer to drive and nothing to draw into — one call returns a string, and what you do with it is your business.
Written as a single-header C library with a flat C ABI and bindings for Python, Rust, Go, JavaScript, C# and Java. Every one of them produces byte-identical output.
Licensed under the MIT License.
Installation
pip install ccharts
For pandas DataFrame support (optional — the package itself has no runtime dependencies):
pip install ccharts[pandas]
Pre-built wheels for Linux (x86_64 and aarch64), macOS (x86_64 and arm64)
and Windows (x86_64), built on GitHub Actions CI for CPython 3.9-3.14, are
published together with each release — no C toolchain is needed on the
target machine. Install the sdist instead and a C compiler (gcc/Clang on
Linux/macOS, MSVC on Windows) is required, because the package wraps the C
single-header library ccharts.h.
Features
- Strings, not output — every entry point returns a string. Nothing is printed, no stream is written to, no terminal is detected or resized around.
- Plain or colored —
plainyields text with no ANSI escapes at all; otherwise colors are escape strings you choose, including 256-color and truecolor. - Line charts — smooth curves using 8-level vertical resolution
(
▁▂▃▄▅▆▇█), per-segment coloring, optional area fill under the line. - Candlestick charts — solid bodies between open/close, thin vertical
wicks (
│) between high/low, gap-separated candles, automatic downsampling when there are more candles than columns. - Axis labels — optional max/min price margin and first/last timestamp
footer. The timestamp format is picked automatically from the candle
interval (
YYYY-MM-DDfor daily+,HH:MMfor intraday). - Timestamps — optional per-candle epoch timestamps, parsed from ISO8601 or a plain number.
- Parsers — CSV (
cc_str_to_ohlc) and a fixed-schema JSON parser (cc_json_to_ohlc). - pandas / columnar input (Python) —
Chart.from_dataframe(df)andChart.from_arrays(...)copy price columns straight into the C array, with no JSON round-trip. pandas is optional.
C usage
#define CCHARTS_IMPLEMENTATION
#include "ccharts.h"
int main(void) {
const char* json = ...; // [{ts,open,high,low,close}, ...]
cc_ohlc_t* ohlc = NULL;
int size = 0;
cc_json_to_ohlc(json, &ohlc, &size);
cc_settings_t s = { .rise_color = CC_COLOR_BLUE,
.show_prices = 1, .show_times = 1 };
char* chart = cc_line_create(ohlc, size, 60, 8, &s);
printf("%s\n", chart);
free(chart);
free(ohlc);
return 0;
}
cc_line_create hands back a char* you own: print it, log it, embed it,
free() it. Compile with -lm (math lib). CCHARTS_IMPLEMENTATION must be
defined in exactly one translation unit; every other unit can include the
header as-is.
C++ code can use the header for declarations (see the doc comment in
ccharts.h for details).
Run the demo with make test — it compiles main.c and runs the binary,
rendering prices.txt as a line chart and two candlestick variants.
Python usage
make test-py # builds the extension and runs the test suite
from ccharts import Chart
chart = Chart(open("prices.txt").read())
print(chart.line(width=60, height=8, show_prices=True, show_times=True))
print(chart.candle(width=60, height=8))
DataFrames and raw columns
A DataFrame does not have to be serialized to JSON first — the price columns are handed to C directly:
import yfinance as yf
from ccharts import Chart
df = yf.download("THYAO.IS", period="3mo") # Open/High/Low/Close columns
print(Chart.from_dataframe(df).candle(width=80, height=12, show_times=True))
- Columns are matched case-insensitively (
Open/open/OPEN); passohlc=("o", "h", "l", "c")for anything else. - Timestamps come from a
DatetimeIndex, or fromts="column". Timezone-aware values are converted to UTC, naive ones are treated as UTC. - Rows with NaN/inf in an OHLC column are dropped (indicator frames have NaN
warm-up rows);
dropna=Falseraises instead. - Row order is used as-is — a descending frame renders right to left.
The same path works without pandas, for lists, numpy arrays or array.array:
Chart.from_arrays(opens, highs, lows, closes, ts=epoch_seconds)
To develop locally (builds the extension in place):
python3 -m pip install -e . # or: make test-py
Building a wheel by hand also works and is a good local smoke test:
python3 -m pip wheel . --no-deps -w /tmp/ccharts_wheel
C ABI and other languages
ccharts.h exports nothing — CC_INLINE makes every function static inline,
and struct cc_ohlc is private to the implementation block — so there is
nothing for a foreign function interface to bind to. abi/ccharts_abi.h
provides that layer: a flat, extern "C", opaque-handle API with explicit
status codes, built as a shared or static library.
cmake -S . -B build && cmake --build build
ctest --test-dir build --output-on-failure
#include "ccharts_abi.h"
ccharts_data* data = NULL;
ccharts_from_arrays(open, high, low, close, ts, n, &data);
ccharts_settings s = {0};
s.rise_color = ccharts_color(CCHARTS_COLOR_BLUE);
s.show_prices = 1;
char* chart = NULL;
size_t len = 0;
if (ccharts_line(data, 60, 8, &s, &chart, &len) == CCHARTS_OK) {
printf("%s", chart);
ccharts_string_free(chart);
}
ccharts_data_free(data);
Differences from the raw header, all in the direction of being bindable:
invalid dimensions return CCHARTS_ERR_DIMENSIONS instead of an empty string,
NaN and inf are rejected up front, and ccharts_parse_csv counts the rows it
can parse so a dataset never carries trailing zero-filled candles.
conformance/cases.json plus conformance/golden/*.txt are the cross-language
contract: 20 cases covering both chart types, downsampling, labels, timezones,
flat ranges and single-candle input. The goldens are generated from the ABI
(scripts/gen_golden.py) and every binding — the Python one included, see
tests/test_conformance.py — must reproduce them byte for byte.
Language bindings
| Language | Location | Published as |
|---|---|---|
| Python | ccharts/ |
ccharts on PyPI |
| Rust | bindings/rust/ |
ccharts on crates.io |
| Go | bindings/go/ |
served from the repository (no registry) |
| JavaScript (WASM) | bindings/js/ |
@dethrandir/ccharts on npm |
| C# (.NET 8) | bindings/dotnet/ |
Ccharts on NuGet |
| Java (JDK 22+) | bindings/java/ |
io.github.dethrandir:ccharts on Maven Central |
Rust and Go compile the vendored C sources with their own toolchains (the cc
crate and cgo), so neither needs a prebuilt library:
let chart = Chart::from_arrays(&open, &high, &low, &close, Some(&ts))?;
println!("{}", chart.line(60, 8, &Settings::new().rise(Color::Blue))?);
chart, _ := ccharts.FromArrays(open, high, low, close, ts)
defer chart.Close()
out, _ := chart.Candle(60, 8, &ccharts.Options{ShowPrices: true})
The JavaScript package is the library compiled to WebAssembly, with the module embedded in the JavaScript — one dependency-free package for Node, Deno, Bun and browsers alike, no prebuilt binaries and no bundler configuration:
import { Chart, Color } from "@dethrandir/ccharts";
const chart = Chart.fromArrays(open, high, low, close, ts);
console.log(chart.candle({ width: 60, height: 8, showPrices: true }));
chart.free();
C# uses source-generated P/Invoke and Java the Foreign Function & Memory API
(no JNI code at all). Both link the shared library rather than compiling the C,
so both ship prebuilt natives — runtimes/{rid}/native/ in the NuGet package,
native/{os}-{arch}/ in the jar:
using var chart = Chart.FromArrays(open, high, low, close, ts);
Console.Write(chart.Line(new ChartOptions { RiseColor = Color.Blue, ShowPrices = true }));
try (Chart chart = Chart.fromArrays(open, high, low, close, ts)) {
System.out.print(chart.line(ChartOptions.builder().rise(Color.BLUE).build()));
}
Each binding vendors its own copy of ccharts.h and the ABI — Go needs cgo
sources inside the package directory and cargo package only ships crate-local
files — so scripts/sync_sources.py refreshes them and CI fails if a copy
drifts.
Settings
| Field | Meaning | Default |
|---|---|---|
rise_color |
color for rising values / candles | green |
fall_color |
color for falling values / candles | red |
bg_color |
background of empty cells | none |
area_color |
fill below the line chart | none |
single_color |
1 = one line color; 0 = per-segment colors | 0 |
show_prices |
print max/min price labels | 0 |
show_times |
print first/last timestamp footer | 0 |
Setting a color to the empty string (rather than leaving it unset) makes
that element carry no escape sequence at all — no color, and no reset either.
Set all four and the chart comes out as plain text. The bindings expose that as
a single plain option:
chart.line(width=60, height=8, plain=True) # not one escape byte
Any unset field falls back to its default, so only the fields you want to
override need to be set (see cc_settings_resolve).
Input constraints
- Timestamps — ISO8601 strings may carry a UTC offset (
+03:00,+0300,+03,Z; a missing offset is treated as UTC). The offset is applied, so the stored epoch is the true instant:2026-07-20T00:00:00+03:00becomes2026-07-19T21:00:00UTC. Plain epoch-seconds numbers (including negative) are accepted as-is. Malformed timestamps parse to0. - Dimensions —
width/heightmust be positive and are capped atCC_MAX_DIM(100000) per side andCC_MAX_CELLS(1000000) total cells. Invalid dimensions make the C chart functions return an empty string and make the Python bindings raiseValueError— no unchecked giant allocation, no stack overflow. - CSV — lines may be arbitrarily long and at most
sizelines are read. - JSON — must be an array of objects with
ts,open,high,low,close(plus optional ignored fields likevolume). The parser is an iterative mini-scanner: keys are matched exactly, so a substring like"open"inside a string value can never cause a false match. Malformed or empty documents make the parsers fail cleanly.
Windows / MSVC
The header is VLA-free and uses only portable C89 constructs, so it compiles
with MSVC out of the box: gmtime_r is swapped for gmtime_s on _WIN32
and all functions get internal linkage (static) through the CC_INLINE
macro, sidestepping MSVC's lack of C11 inline semantics. No extra flags or
libraries are required beyond the standard ones.
Releases
One tag releases everything. Pushing v<version> (e.g. v0.2.0) runs
.github/workflows/publish.yml, which first refuses the build unless the tag
and every manifest agree on the version (scripts/check_versions.py), then
publishes each package. Each registry's credential (API token, username, GPG
key) is expected as a GitHub repository secret and is documented in the
workflow, not here:
| Registry | Package |
|---|---|
| PyPI | ccharts (sdist + cibuildwheel wheels) |
| crates.io | ccharts |
| npm | @dethrandir/ccharts (published with provenance) |
| NuGet | Ccharts |
| Maven Central | io.github.dethrandir:ccharts |
The Go module has no registry — it is served from the repository — but a module
in a subdirectory needs a tag carrying that prefix, so the workflow also pushes
bindings/go/v<version>.
The C# and Java packages are the only ones carrying binaries:
.github/workflows/natives.yml builds the shared library for linux-x64,
osx-arm64 and win-x64, and scripts/pack_natives.py arranges them
into runtimes/{rid}/native/ for NuGet and native/{os}-{arch}/ for the jar.
Both publish jobs then verify the packed artifact actually contains every
platform before it leaves the runner — a package that quietly lost its natives
would install fine and fail on the first call. (Linux aarch64 is not built, for
the same reason the Python wheels skip it: QEMU emulation on GitHub-hosted
runners is far too slow. It can be added once native ARM runners are
available.)
workflow_dispatch runs every build job without uploading anything, so a
release can be rehearsed in full.
Two notes on publishing: PyPI could drop its API token entirely by moving
to trusted publishing — link the
pypi GitHub environment and delete the password input. Maven Central
requires a verified io.github.dethrandir namespace on the
Central Portal and a published GPG key before
the first deploy will be accepted.
Repository layout
ccharts.h— the whole C library (single header, heavily documented).main.c— C demo usingprices.txt.prices.txt— sample JSON OHLC data (THYAO).abi/— flat C ABI (ccharts_abi.h/.c) for non-Python bindings.bindings/— language bindings built on that ABI (rust/,go/,js/,dotnet/,java/).conformance/— cross-language case list, goldens and a C smoke test.scripts/— golden generation, vendored-source sync, version consistency.ccharts/— Python package:__init__.py(high-levelChart),wrapper.c(CPython extensionccharts._core) and_pandas.py(optional DataFrame conversion, imported lazily).tests/— Python test suite (test_python_api.py, plustest_pandas_api.pywhich skips when pandas is not installed).
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 ccharts-0.2.1.tar.gz.
File metadata
- Download URL: ccharts-0.2.1.tar.gz
- Upload date:
- Size: 44.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f3ff2cb008ad66806484df582aab31caad61e3317a061b9fca5eff3cb13e870
|
|
| MD5 |
72a7bf76dbc2e685f286dd167070ba03
|
|
| BLAKE2b-256 |
29f07753852b059c6f5992e167b5c6118e9744d0102c3774bc28cc849c850a5d
|
File details
Details for the file ccharts-0.2.1-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 33.9 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb8a0727e8a3ccedca9e3119b4615b3db6efaada46f72fb6608d64f655a5bcbe
|
|
| MD5 |
588c944b0387e1746101ff3a44cf726d
|
|
| BLAKE2b-256 |
a0f899f2804c20fd968001016caae88e3d535d5a446488960ce1ea0ba9d48fc1
|
File details
Details for the file ccharts-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 68.6 kB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06c59c82e995729ca710f6cc3cf130949e00c99f58ab72bf3b6f01fe7de35673
|
|
| MD5 |
9915ed3033a623e0c46ce2c1b906a646
|
|
| BLAKE2b-256 |
6c3792d8a5276bbed304dd1d25a287e448062eebe372004942ef885fca2bcf15
|
File details
Details for the file ccharts-0.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 70.1 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79e73c52c42247e3231b57f982942addf38272d2254f278dc1479a4080ff0801
|
|
| MD5 |
451efd0c48ba6ff69b6563bfda4b60fb
|
|
| BLAKE2b-256 |
6f03e643caa3f703e3b771151ca0400fcfeac168814f8fc2d1f679744ad2c80f
|
File details
Details for the file ccharts-0.2.1-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 30.4 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aaac8630267649f5cdcd901d8f841437f45b7a075f2728dde4b748ada97fe7d7
|
|
| MD5 |
5a0b35ff0813227c16bd94b74bb64222
|
|
| BLAKE2b-256 |
f0ae446a5844ccff4d44638bb744c0cafc7e284f2d910b6b11e704f083ecfc2b
|
File details
Details for the file ccharts-0.2.1-cp314-cp314-macosx_10_15_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp314-cp314-macosx_10_15_x86_64.whl
- Upload date:
- Size: 31.1 kB
- Tags: CPython 3.14, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e278898339101118fd7ee4d587dbd544dd86dbd7d03364c74ff6503c80e09c6
|
|
| MD5 |
1717293ae71201be78dbb4768b6df471
|
|
| BLAKE2b-256 |
4d749ebfd59fc039f0382798018ee7e4735a671476b8b39438bc1f0358c32f85
|
File details
Details for the file ccharts-0.2.1-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 33.2 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed5b64f261280094e47045576f020369c9d173158b5975d658cb187e9b3445ee
|
|
| MD5 |
7d9270f02f005132482f787c4e387d0d
|
|
| BLAKE2b-256 |
30c19dc81b1e2bf491b350bb89f12e635afa81322cd4bf51548421bcc0e9ad20
|
File details
Details for the file ccharts-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 68.6 kB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2998e4277ab4c796382997b33bc410b79ccb68837a710c09ff6d0d06a20cd0b
|
|
| MD5 |
7b29f5c50ac86d0bd0fa95deedeeb3c2
|
|
| BLAKE2b-256 |
6b26e69c97d434ec03a90b396f12d9ba5b952db99e4139e030a52f4450020a38
|
File details
Details for the file ccharts-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 70.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
229b08d22317a55fc1d32065f5bff7d5440e9c5fc3195472ff1d5fece831bd63
|
|
| MD5 |
1ff255b5aecccc0806acc4a324d258b6
|
|
| BLAKE2b-256 |
35c6704329cef05d0a19a58c3b1fcade74066e23dd96f63edd8efe521b7da461
|
File details
Details for the file ccharts-0.2.1-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 30.4 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11d7e2e912f18aff7b8c71042b9133dc454f6e6fd5162ad4e5ccbe3c67ee3809
|
|
| MD5 |
3112c9ef34e302cf79d303e01a5fba21
|
|
| BLAKE2b-256 |
dcf91c1cdcc9e572239990918b52d69219209f5957e2521bb6590ce415cef7d8
|
File details
Details for the file ccharts-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl
- Upload date:
- Size: 31.0 kB
- Tags: CPython 3.13, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f1655589df5736e9dd3cf1028be4fe9cc038648ccca49f3fb5058d653bc23e7
|
|
| MD5 |
eebdc63a657d9632bf8732b65833a82e
|
|
| BLAKE2b-256 |
85979dcf797cc985b39dbf1e643a932617240b7615dc86154e48f17f8fd00f0b
|
File details
Details for the file ccharts-0.2.1-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 33.2 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bca7394e3544ca02151b30a12d518faa7f33f99635b275e0eecdb13f71bc60c
|
|
| MD5 |
1908228663c47ad5d33e4357524a8a47
|
|
| BLAKE2b-256 |
4c304f08dc7f056eeba21d870bcc0d9b6b8db5b9e6ab238305301230a3f1b8bf
|
File details
Details for the file ccharts-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 68.5 kB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c2f48df7c6c78353629751a683db2bea73c68db9112fb62e1e5907af107ed18
|
|
| MD5 |
6939fb72199fb6e6abc9cbc2ebe5b5b5
|
|
| BLAKE2b-256 |
82cd4f2c8b69414d95433de4bcbcb9932685ec72d6e20bd17d68fdbf3783014f
|
File details
Details for the file ccharts-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 70.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c24a1e1a3c34a440286a619c64abdcc2e8d1da0dcb23c7ffc02de525826565e
|
|
| MD5 |
9b1ef955d91f474781e3db2dec241e8f
|
|
| BLAKE2b-256 |
669c0e73f7f257727fc9e4719750fa8dc4cac0892ecf21db964d1c1036d84308
|
File details
Details for the file ccharts-0.2.1-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 30.4 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c7dd254fd0949239a1b5161a25bffbeeb11278133fa3b9a4bcee7aba0b58a3b
|
|
| MD5 |
ebaef9b3e8bc27687b2101445e415914
|
|
| BLAKE2b-256 |
1f4ddf5da16996b5eb96d69485a0f2ecacc6010d5788692971449f9172ecc0ee
|
File details
Details for the file ccharts-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl
- Upload date:
- Size: 31.0 kB
- Tags: CPython 3.12, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
706c99e7a1cd04840b37c41b9e37c49ffbe4354ea911e6bec879dac239500658
|
|
| MD5 |
b672bed3e3db76fc79fad5c418a6281d
|
|
| BLAKE2b-256 |
90bf368a571e8bbb035baf27159a49e6a7545b9b85ad151d2cd2bf35ef38b491
|
File details
Details for the file ccharts-0.2.1-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 33.2 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1c4e9d3643fef5c2149793cb5d9c5774267c4baa4d5f623b4bc0b3d9a850298
|
|
| MD5 |
4c97fef2bd2d1ecdfdcb5fe43a9da138
|
|
| BLAKE2b-256 |
6b045dce7515d26ce5da1832a42297dafbdef65a9df90408d0830c59a28b7147
|
File details
Details for the file ccharts-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 68.0 kB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab65042bcbfe9d6acfcbdf282c96a91e9f7fcdee646055340d9f729ce9ad5157
|
|
| MD5 |
e6d67511364058f5dfe1c674e6a13597
|
|
| BLAKE2b-256 |
12c16831dc808e751c770f7a7abebea97b125fdd1dd3feb08743216ea79db206
|
File details
Details for the file ccharts-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 69.4 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ac6ddf53b0784ff2753807a34091775bf7b9a544d131a476ed9df3bd31ec2d6
|
|
| MD5 |
f0e161484f4bc91d93c288ed4e30bced
|
|
| BLAKE2b-256 |
5d2790e8e1f1eb64367f5aa8cefd90dc0ce36eeef5e5eb3b51ce51923ddc954d
|
File details
Details for the file ccharts-0.2.1-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 30.4 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bfd92eaa8caccac2d6ba9c1586754917e467d660579317ec39fc9828b049b1f
|
|
| MD5 |
2a6fb2c238fff57e16a1c1a12abfd2e4
|
|
| BLAKE2b-256 |
a3ca571ee29290846f7385bdf3c6ad3c7871ebb88c30f2343c7f5327e4054d1e
|
File details
Details for the file ccharts-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 30.9 kB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f21bede030616aa8993f004eb974c2e2e13235fa4c88f3b37f9f6a706275b254
|
|
| MD5 |
bb9f3b73cf487b31381497a812909e6a
|
|
| BLAKE2b-256 |
7f100282bfb6222c9212396fbafe80f2b01f77649bf6e0acfd36124a0f8f3c6c
|
File details
Details for the file ccharts-0.2.1-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 33.2 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e3b066fce59c31f22e87a6c35cc822e1935367987b50d9c53b541ff27b30d81
|
|
| MD5 |
d4f32689c882f1447179c823169493ef
|
|
| BLAKE2b-256 |
b7f26493aa0f4d4f1f8aa8a94e14194d675ae4719a023bb12dc922266b47826a
|
File details
Details for the file ccharts-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 67.6 kB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21c32a71a8723e9d0045c2aa999467979dda94bc4ee2617c567d31276cc1fbc8
|
|
| MD5 |
4b5aa54680a7fff7f0768022557dfa94
|
|
| BLAKE2b-256 |
8186b0c44b243c3aac5fc774bba7b140bfc25cce950e3b3b1bfd1be1f09c7509
|
File details
Details for the file ccharts-0.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 69.0 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a5d6597edee25cf4c626779c528881a8aaf90501140a94680c9cbcc9017cdb5
|
|
| MD5 |
5a1761709b6d95d754f13fe7ea8e2c65
|
|
| BLAKE2b-256 |
c4573fb1684281f00bcaaa29d9a6b740fc50fc47212fa2599d33c73824365219
|
File details
Details for the file ccharts-0.2.1-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 30.4 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6539c5bbd3ac449214309896bc920214afd6f33056b83df45703449094bfbe7
|
|
| MD5 |
968a838f4fdf70bf3268b7272875618a
|
|
| BLAKE2b-256 |
855808ce1bfa34a3ce29f796d34c6f1d9fcf064bdad1d4a12a5a95267d7b32dc
|
File details
Details for the file ccharts-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 31.0 kB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5eb5594a1c445305aded2ff4773a0e9d5f11aa0889e4918812382fc1df35b66a
|
|
| MD5 |
62d33a6cd721b50f5c7918018f1d2004
|
|
| BLAKE2b-256 |
acbc11fbf64b8542f703c7c03bb2f3385c36225475c6ef35cd06245ca13671b5
|
File details
Details for the file ccharts-0.2.1-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 33.2 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38b692dfb181d942cf00c55639e78f2c8fcb1909d2548582b7a6118bbda52ff6
|
|
| MD5 |
966d22c5e86fde3c20b5a4003cadf008
|
|
| BLAKE2b-256 |
d271ea8c659da5da520ee8eef7f15c3f72ac100b85018973f3733f640a9e047c
|
File details
Details for the file ccharts-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp39-cp39-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 67.3 kB
- Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6715cb4ee856ace168fcfe30e7043ab955beb5cda86218524a3057604ccd5e2
|
|
| MD5 |
affe9272ae0d111005ddc8021a73404d
|
|
| BLAKE2b-256 |
585ba9054202e1a7269453ba0ccc6b3bdf17579c32c998cfd366b8bf5fb09734
|
File details
Details for the file ccharts-0.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 68.7 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95ed7cf2d8844b39333d6396b6ac985200983f993e956b451634f4f0e5e821d4
|
|
| MD5 |
e3f262c31a2683356e040b028fcbc9e1
|
|
| BLAKE2b-256 |
36f34065b563571f4ff98032135879296fec858ee0ed87aa5d826599e355d680
|
File details
Details for the file ccharts-0.2.1-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 30.4 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3d3b162177f1b1caca493c10759dc76df1083f2ea5847abc0d0ad2503dc3654
|
|
| MD5 |
25c8f0efa566540dc6271a1b26db64b5
|
|
| BLAKE2b-256 |
ac5afaf0025072a06eae18b9ef83b84ff8b9d1f82078b987a1b8c038b3e86366
|
File details
Details for the file ccharts-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl.
File metadata
- Download URL: ccharts-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 30.9 kB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e69a55c17a0df78e074a273d5f942f16b6831b466b6fadfde07a472a414e0d33
|
|
| MD5 |
b6b0f3ea155499c7190bb580f0c950db
|
|
| BLAKE2b-256 |
8d41808351a672c5ea913102e40253282a068e4da86eed15d1284135f936f725
|