numclassify 0.3.2__tar.gz → 0.3.2.1__tar.gz
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.
- {numclassify-0.3.2 → numclassify-0.3.2.1}/CHANGELOG.md +5 -3
- {numclassify-0.3.2 → numclassify-0.3.2.1}/PKG-INFO +1 -1
- numclassify-0.3.2.1/docs/extra/saffron.css +37 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/docs/playground.html +1 -1
- {numclassify-0.3.2 → numclassify-0.3.2.1}/docs/playground.js +42 -6
- {numclassify-0.3.2 → numclassify-0.3.2.1}/mkdocs.yml +6 -2
- {numclassify-0.3.2 → numclassify-0.3.2.1}/pyproject.toml +1 -1
- {numclassify-0.3.2 → numclassify-0.3.2.1}/.github/workflows/ci.yml +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/.github/workflows/docs.yml +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/.github/workflows/publish.yml +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/.gitignore +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/CONTRIBUTING.md +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/LICENSE +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/README.md +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/docs/api.md +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/docs/changelog.md +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/docs/cli.md +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/docs/index.md +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/docs/playground.css +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/examples/basic_usage.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/examples/custom_type.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/examples/find_perfect_numbers.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/examples/random_classify.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/examples/stream_large_range.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/__init__.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/__main__.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/_core/__init__.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/_core/combinatorial.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/_core/digital.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/_core/divisors.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/_core/figurate.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/_core/number_theory.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/_core/powers.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/_core/primes.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/_core/recreational.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/_core/sequences.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/_registry.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/cli.py +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/numclassify/py.typed +0 -0
- {numclassify-0.3.2 → numclassify-0.3.2.1}/tests/test_registry.py +0 -0
|
@@ -6,6 +6,11 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [0.3.2.1] - 2026-06-12
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
- Search autocomplete dropdown not appearing — added fallback fetch of property names if initial Pyodide load fails, plus visible "Loading..." state in dropdown
|
|
13
|
+
|
|
9
14
|
## [0.3.2] - 2026-06-12
|
|
10
15
|
|
|
11
16
|
### Added
|
|
@@ -14,9 +19,6 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
|
14
19
|
- Keyboard shortcuts: `C` (classify), `S` (search), `N` (Number of the Day), `?`/`H` (show shortcuts overlay)
|
|
15
20
|
- `prefers-reduced-motion` support — disables all animations for accessibility
|
|
16
21
|
|
|
17
|
-
### Fixed
|
|
18
|
-
- No bugs reported since v0.3.1
|
|
19
|
-
|
|
20
22
|
## [0.3.1] - 2026-06-12
|
|
21
23
|
|
|
22
24
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: numclassify
|
|
3
|
-
Version: 0.3.2
|
|
3
|
+
Version: 0.3.2.1
|
|
4
4
|
Summary: The most comprehensive Python library for number classification - 3000+ number types
|
|
5
5
|
Project-URL: Homepage, https://github.com/aratrikghosh2011-tech/numclassify
|
|
6
6
|
Project-URL: Repository, https://github.com/aratrikghosh2011-tech/numclassify
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--md-primary-fg-color: #FF9933;
|
|
3
|
+
--md-primary-fg-color--light: #FFB366;
|
|
4
|
+
--md-primary-fg-color--dark: #E6821A;
|
|
5
|
+
--md-primary-bg-color: #0A0A0F;
|
|
6
|
+
--md-primary-bg-color--light: #12121A;
|
|
7
|
+
--md-accent-fg-color: #FF9933;
|
|
8
|
+
--md-accent-fg-color--light: #FFB366;
|
|
9
|
+
--md-accent-fg-color--dark: #E6821A;
|
|
10
|
+
--md-typeset-a-color: #FF9933;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
[data-md-color-scheme="slate"] {
|
|
14
|
+
--md-default-bg-color: #0A0A0F;
|
|
15
|
+
--md-code-bg-color: #12121A;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.md-header {
|
|
19
|
+
background: linear-gradient(135deg, #E6821A, #FF9933) !important;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.md-tabs {
|
|
23
|
+
background: #E6821A !important;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.md-search__form {
|
|
27
|
+
background: rgba(255,255,255,0.15) !important;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
a:hover {
|
|
31
|
+
color: #FFB366 !important;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.md-footer {
|
|
35
|
+
background: #0A0A0F !important;
|
|
36
|
+
border-top: 1px solid rgba(255,153,51,0.2);
|
|
37
|
+
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<header>
|
|
20
20
|
<button class="theme-toggle" onclick="toggleTheme()" title="Toggle theme"><span id="theme-icon">🌙</span></button>
|
|
21
21
|
<div class="logo-badge">numclassify playground</div>
|
|
22
|
-
<div class="version-badge" id="version-badge">v<span id="version-text">—</span></div>
|
|
22
|
+
<div class="version-badge" id="version-badge" data-version="0.3.2.1">v<span id="version-text">—</span></div>
|
|
23
23
|
<h1>Number Intelligence</h1>
|
|
24
24
|
<p class="subtitle">Classify any integer into 3000+ named mathematical types — powered by real Python in your browser.</p>
|
|
25
25
|
</header>
|
|
@@ -228,12 +228,18 @@ json.dumps(m)
|
|
|
228
228
|
console.warn('Could not load category map', e);
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
-
// Fetch version number
|
|
231
|
+
// Fetch version number — prefer local source version as canonical
|
|
232
|
+
const badge = $('version-badge');
|
|
233
|
+
const srcVersion = badge ? badge.dataset.version : null;
|
|
232
234
|
try {
|
|
233
|
-
const
|
|
234
|
-
|
|
235
|
+
const pypiVer = await pyodide.runPythonAsync('nc.__version__');
|
|
236
|
+
// Use the source version (from pyproject.toml) since PyPI may lag behind
|
|
237
|
+
$('version-text').textContent = srcVersion || pypiVer;
|
|
238
|
+
if (srcVersion && pypiVer !== srcVersion) {
|
|
239
|
+
badge.title = 'Source: v' + srcVersion + ' | PyPI: v' + pypiVer;
|
|
240
|
+
}
|
|
235
241
|
} catch(e) {
|
|
236
|
-
$('version-text').textContent = '?';
|
|
242
|
+
$('version-text').textContent = srcVersion || '?';
|
|
237
243
|
}
|
|
238
244
|
|
|
239
245
|
setProgress(100, 'Ready!');
|
|
@@ -670,13 +676,43 @@ function setupAutocomplete() {
|
|
|
670
676
|
const dropdown = $('ac-dropdown');
|
|
671
677
|
let selectedIdx = -1;
|
|
672
678
|
|
|
673
|
-
input.addEventListener('input', () => {
|
|
679
|
+
input.addEventListener('input', async () => {
|
|
674
680
|
const val = input.value.trim().toLowerCase();
|
|
675
681
|
if (!val) { dropdown.classList.remove('open'); return; }
|
|
682
|
+
|
|
683
|
+
// Fallback: if allProperties is empty (Pyodide category fetch failed), try on-the-fly
|
|
684
|
+
if (!allProperties.length && pyReady && pyodide) {
|
|
685
|
+
try {
|
|
686
|
+
const sample = await pyodide.runPythonAsync(`
|
|
687
|
+
import json
|
|
688
|
+
from numclassify._registry import REGISTRY
|
|
689
|
+
keys = list(REGISTRY.keys())
|
|
690
|
+
json.dumps(keys)
|
|
691
|
+
`);
|
|
692
|
+
const keys = JSON.parse(sample);
|
|
693
|
+
if (keys.length) {
|
|
694
|
+
allProperties = keys;
|
|
695
|
+
categoryMap = {};
|
|
696
|
+
keys.forEach(k => { categoryMap[k] = ''; });
|
|
697
|
+
console.log('Autocomplete: fallback loaded', keys.length, 'properties');
|
|
698
|
+
}
|
|
699
|
+
} catch(e) {
|
|
700
|
+
console.warn('Autocomplete fallback failed', e);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
|
|
676
704
|
const matches = allProperties
|
|
677
705
|
.filter(p => p.includes(val))
|
|
678
706
|
.slice(0, 10);
|
|
679
|
-
if (!matches.length) {
|
|
707
|
+
if (!matches.length) {
|
|
708
|
+
if (!allProperties.length) {
|
|
709
|
+
dropdown.innerHTML = '<div class="ac-item" style="cursor:default;color:var(--text-muted)">Loading properties...</div>';
|
|
710
|
+
dropdown.classList.add('open');
|
|
711
|
+
} else {
|
|
712
|
+
dropdown.classList.remove('open');
|
|
713
|
+
}
|
|
714
|
+
return;
|
|
715
|
+
}
|
|
680
716
|
selectedIdx = -1;
|
|
681
717
|
dropdown.innerHTML = matches.map((p, i) =>
|
|
682
718
|
`<div class="ac-item${i === 0 ? ' selected' : ''}" data-prop="${p}" onclick="pickAutocomplete('${p}')">
|
|
@@ -7,13 +7,17 @@ repo_name: aratrikghosh2011-tech/numclassify
|
|
|
7
7
|
theme:
|
|
8
8
|
name: material
|
|
9
9
|
palette:
|
|
10
|
-
primary:
|
|
11
|
-
accent:
|
|
10
|
+
primary: custom
|
|
11
|
+
accent: custom
|
|
12
|
+
scheme: slate
|
|
12
13
|
features:
|
|
13
14
|
- navigation.tabs
|
|
14
15
|
- navigation.top
|
|
15
16
|
- content.code.copy
|
|
16
17
|
|
|
18
|
+
extra_css:
|
|
19
|
+
- extra/saffron.css
|
|
20
|
+
|
|
17
21
|
nav:
|
|
18
22
|
- Home: index.md
|
|
19
23
|
- API Reference: api.md
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "numclassify"
|
|
7
|
-
version = "0.3.2"
|
|
7
|
+
version = "0.3.2.1"
|
|
8
8
|
description = "The most comprehensive Python library for number classification - 3000+ number types"
|
|
9
9
|
authors = [{name = "Aratrik Ghosh", email = "aratrikghosh2011@gmail.com"}]
|
|
10
10
|
readme = "README.md"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|