diff --git a/changelogs/WinPythondot-64bit-3.12.10.0.md b/changelogs/WinPythondot-64bit-3.12.10.0.md
new file mode 100644
index 00000000..31153ea2
--- /dev/null
+++ b/changelogs/WinPythondot-64bit-3.12.10.0.md
@@ -0,0 +1,29 @@
+## WinPython 3.12.10.0dot
+
+The following packages are included in WinPython-64bit v3.12.10.0dot .
+
+
+
+### Tools
+
+Name | Version | Description
+-----|---------|------------
+
+
+### Python packages
+
+Name | Version | Description
+-----|---------|------------
+[Python](http://www.python.org/) | 3.12.10 | Python programming language with standard library
+[build](https://pypi.org/project/build) | 1.2.2.post1 | A simple, correct Python build frontend
+[colorama](https://pypi.org/project/colorama) | 0.4.6 | Cross-platform colored terminal text.
+[packaging](https://pypi.org/project/packaging) | 24.2 | Core utilities for Python packages
+[pip](https://pypi.org/project/pip) | 25.0.1 | The PyPA recommended tool for installing Python packages.
+[pyproject-hooks](https://pypi.org/project/pyproject-hooks) | 1.1.0 | Wrappers to call pyproject.toml-based build backend hooks.
+[setuptools](https://pypi.org/project/setuptools) | 75.8.2 | Easily download, build, install, upgrade, and uninstall Python packages
+[sqlite-bro](https://pypi.org/project/sqlite-bro) | 0.13.1 | a graphic SQLite Client in 1 Python file
+[sv-ttk](https://pypi.org/project/sv-ttk) | 2.6.0 | A gorgeous theme for Tkinter, based on Windows 11's UI
+[wheel](https://pypi.org/project/wheel) | 0.45.1 | A built-package format for Python
+[winpython](https://pypi.org/project/winpython) | 15.3.20250425 | WinPython distribution tools, including WPPM
+
+
diff --git a/changelogs/WinPythondot-64bit-3.12.10.0_History.md b/changelogs/WinPythondot-64bit-3.12.10.0_History.md
new file mode 100644
index 00000000..aef40183
--- /dev/null
+++ b/changelogs/WinPythondot-64bit-3.12.10.0_History.md
@@ -0,0 +1,22 @@
+## History of changes for WinPython-64bit 3.12.10.0dot
+
+The following changes were made to WinPython-64bit distribution since version 3.12.9.0dot.
+
+
+
+### Python packages
+
+New packages:
+
+ * [sv-ttk](https://pypi.org/project/sv-ttk) 2.6.0 (A gorgeous theme for Tkinter, based on Windows 11's UI)
+
+Upgraded packages:
+
+ * [pip](https://pypi.org/project/pip) 24.3.1 → 25.0.1 (The PyPA recommended tool for installing Python packages.)
+ * [Python](http://www.python.org/) 3.12.9 → 3.12.10 (Python programming language with standard library)
+ * [setuptools](https://pypi.org/project/setuptools) 75.6.0 → 75.8.2 (Easily download, build, install, upgrade, and uninstall Python packages)
+ * [winpython](https://pypi.org/project/winpython) 13.1.20250215 → 15.3.20250425 (WinPython distribution tools, including WPPM)
+
+
+
+* * *
diff --git a/changelogs/WinPythondot-64bit-3.13.3.0.md b/changelogs/WinPythondot-64bit-3.13.3.0.md
new file mode 100644
index 00000000..210bbc6d
--- /dev/null
+++ b/changelogs/WinPythondot-64bit-3.13.3.0.md
@@ -0,0 +1,29 @@
+## WinPython 3.13.3.0dot
+
+The following packages are included in WinPython-64bit v3.13.3.0dot .
+
+
+
+### Tools
+
+Name | Version | Description
+-----|---------|------------
+
+
+### Python packages
+
+Name | Version | Description
+-----|---------|------------
+[Python](http://www.python.org/) | 3.13.3 | Python programming language with standard library
+[build](https://pypi.org/project/build) | 1.2.2.post1 | A simple, correct Python build frontend
+[colorama](https://pypi.org/project/colorama) | 0.4.6 | Cross-platform colored terminal text.
+[packaging](https://pypi.org/project/packaging) | 24.2 | Core utilities for Python packages
+[pip](https://pypi.org/project/pip) | 25.0.1 | The PyPA recommended tool for installing Python packages.
+[pyproject-hooks](https://pypi.org/project/pyproject-hooks) | 1.1.0 | Wrappers to call pyproject.toml-based build backend hooks.
+[setuptools](https://pypi.org/project/setuptools) | 75.8.2 | Easily download, build, install, upgrade, and uninstall Python packages
+[sqlite-bro](https://pypi.org/project/sqlite-bro) | 0.13.1 | a graphic SQLite Client in 1 Python file
+[sv-ttk](https://pypi.org/project/sv-ttk) | 2.6.0 | A gorgeous theme for Tkinter, based on Windows 11's UI
+[wheel](https://pypi.org/project/wheel) | 0.45.1 | A built-package format for Python
+[winpython](https://pypi.org/project/winpython) | 15.3.20250425 | WinPython distribution tools, including WPPM
+
+
diff --git a/changelogs/WinPythondot-64bit-3.13.3.0_History.md b/changelogs/WinPythondot-64bit-3.13.3.0_History.md
new file mode 100644
index 00000000..105c04ff
--- /dev/null
+++ b/changelogs/WinPythondot-64bit-3.13.3.0_History.md
@@ -0,0 +1,22 @@
+## History of changes for WinPython-64bit 3.13.3.0dot
+
+The following changes were made to WinPython-64bit distribution since version 3.13.2.0dot.
+
+
+
+### Python packages
+
+New packages:
+
+ * [sv-ttk](https://pypi.org/project/sv-ttk) 2.6.0 (A gorgeous theme for Tkinter, based on Windows 11's UI)
+
+Upgraded packages:
+
+ * [pip](https://pypi.org/project/pip) 24.3.1 → 25.0.1 (The PyPA recommended tool for installing Python packages.)
+ * [Python](http://www.python.org/) 3.13.2 → 3.13.3 (Python programming language with standard library)
+ * [setuptools](https://pypi.org/project/setuptools) 75.6.0 → 75.8.2 (Easily download, build, install, upgrade, and uninstall Python packages)
+ * [winpython](https://pypi.org/project/winpython) 13.1.20250222 → 15.3.20250425 (WinPython distribution tools, including WPPM)
+
+
+
+* * *
diff --git a/changelogs/WinPythonslim-64bit-3.12.10.0.md b/changelogs/WinPythonslim-64bit-3.12.10.0.md
new file mode 100644
index 00000000..a8084d3f
--- /dev/null
+++ b/changelogs/WinPythonslim-64bit-3.12.10.0.md
@@ -0,0 +1,515 @@
+## WinPython 3.12.10.0slim
+
+The following packages are included in WinPython-64bit v3.12.10.0slim .
+
+
+
+### Tools
+
+Name | Version | Description
+-----|---------|------------
+[Pandoc](https://pandoc.org) | 3.1.9 | an universal document converter
+
+### Python packages
+
+Name | Version | Description
+-----|---------|------------
+[Python](http://www.python.org/) | 3.12.10 | Python programming language with standard library
+[absl-py](https://pypi.org/project/absl-py) | 2.0.0 | Abseil Python Common Libraries, see https://github.com/abseil/abseil-py.
+[adbc-driver-manager](https://pypi.org/project/adbc-driver-manager) | 1.3.0 | A generic entrypoint for ADBC drivers.
+[aiofiles](https://pypi.org/project/aiofiles) | 23.2.1 | File support for asyncio.
+[aiohappyeyeballs](https://pypi.org/project/aiohappyeyeballs) | 2.4.4 | Happy Eyeballs for asyncio
+[aiohttp](https://pypi.org/project/aiohttp) | 3.11.11 | Async http client/server framework (asyncio)
+[aiosignal](https://pypi.org/project/aiosignal) | 1.3.1 | aiosignal: a list of registered asynchronous callbacks
+[aiosqlite](https://pypi.org/project/aiosqlite) | 0.20.0 | asyncio bridge to the standard sqlite3 module
+[alabaster](https://pypi.org/project/alabaster) | 0.7.16 | A light, configurable Sphinx theme
+[alembic](https://pypi.org/project/alembic) | 1.15.1 | A database migration tool for SQLAlchemy.
+[altair](https://pypi.org/project/altair) | 5.5.0 | Vega-Altair: A declarative statistical visualization library for Python.
+[aniso8601](https://pypi.org/project/aniso8601) | 9.0.1 | A library for parsing ISO 8601 strings.
+[annotated-types](https://pypi.org/project/annotated-types) | 0.6.0 | Reusable constraint types to use with typing.Annotated
+[ansicolors](https://pypi.org/project/ansicolors) | 1.1.8 | ANSI colors for Python
+[anthropic](https://pypi.org/project/anthropic) | 0.49.0 | The official Python library for the anthropic API
+[anyio](https://pypi.org/project/anyio) | 4.8.0 | High level compatibility layer for multiple asynchronous event loop implementations
+[anywidget](https://pypi.org/project/anywidget) | 0.9.12 | custom jupyter widgets made easy
+[appdirs](https://pypi.org/project/appdirs) | 1.4.4 | A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir".
+[argon2-cffi](https://pypi.org/project/argon2-cffi) | 23.1.0 | Argon2 for Python
+[argon2-cffi-bindings](https://pypi.org/project/argon2-cffi-bindings) | 21.2.0 | Low-level CFFI bindings for Argon2
+[array-api-compat](https://pypi.org/project/array-api-compat) | 1.11.1 | A wrapper around NumPy and other array libraries to make them compatible with the Array API standard
+[arrow](https://pypi.org/project/arrow) | 1.3.0 | Better dates & times for Python
+[asgi-csrf](https://pypi.org/project/asgi-csrf) | 0.9 | ASGI middleware for protecting against CSRF attacks
+[asgiref](https://pypi.org/project/asgiref) | 3.8.1 | ASGI specs, helper code, and adapters
+[asn1crypto](https://pypi.org/project/asn1crypto) | 1.5.1 | Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12,
+[asteval](https://pypi.org/project/asteval) | 0.9.31 | Safe, minimalistic evaluator of python expression using ast module
+[astroid](https://pypi.org/project/astroid) | 3.1.0 | An abstract syntax tree for Python with inference support.
+[astropy](https://pypi.org/project/astropy) | 6.1.6 | Astronomy and astrophysics core library
+[astropy-iers-data](https://pypi.org/project/astropy-iers-data) | 0.2024.12.23.0.33.24 | IERS Earth Rotation and Leap Second tables for the astropy core package
+[asttokens](https://pypi.org/project/asttokens) | 2.4.1 | Annotate AST trees with source code positions
+[async-lru](https://pypi.org/project/async-lru) | 2.0.4 | Simple LRU cache for asyncio
+[asyncssh](https://pypi.org/project/asyncssh) | 2.20.0 | AsyncSSH: Asynchronous SSHv2 client and server library
+[atomicwrites](https://pypi.org/project/atomicwrites) | 1.4.0 | Atomic file writes.
+[attrs](https://pypi.org/project/attrs) | 23.2.0 | Classes Without Boilerplate
+[autopep8](https://pypi.org/project/autopep8) | 2.0.4 | A tool that automatically formats Python code to conform to the PEP 8 style guide
+[azure-core](https://pypi.org/project/azure-core) | 1.32.0 | Microsoft Azure Core Library for Python
+[azure-cosmos](https://pypi.org/project/azure-cosmos) | 4.9.0 | Microsoft Azure Cosmos Client Library for Python
+[azure-identity](https://pypi.org/project/azure-identity) | 1.21.0 | Microsoft Azure Identity Library for Python
+[babel](https://pypi.org/project/babel) | 2.16.0 | Internationalization utilities
+[baresql](https://pypi.org/project/baresql) | 1.0.0 | playing SQL directly on Python datas
+[beautifulsoup4](https://pypi.org/project/beautifulsoup4) | 4.12.2 | Screen-scraping library
+[binaryornot](https://pypi.org/project/binaryornot) | 0.4.4 | Ultra-lightweight pure Python package to check if a file is binary or text.
+[black](https://pypi.org/project/black) | 25.1.0 | The uncompromising code formatter.
+[bleach](https://pypi.org/project/bleach) | 6.1.0 | An easy safelist-based HTML-sanitizing tool.
+[blinker](https://pypi.org/project/blinker) | 1.9.0 | Fast, simple object-to-object and broadcast signaling
+[bokeh](https://pypi.org/project/bokeh) | 3.7.2 | Interactive plots and applications in the browser from Python
+[branca](https://pypi.org/project/branca) | 0.8.0 | Generate complex HTML+JS pages with Python
+[brotli](https://pypi.org/project/brotli) | 1.1.0 | Python bindings for the Brotli compression library
+[build](https://pypi.org/project/build) | 1.2.2.post1 | A simple, correct Python build frontend
+[cachetools](https://pypi.org/project/cachetools) | 5.5.2 | Extensible memoizing collections and decorators
+[certifi](https://pypi.org/project/certifi) | 2025.1.31 | Python package for providing Mozilla's CA Bundle.
+[cffi](https://pypi.org/project/cffi) | 1.17.1 | Foreign Function Interface for Python calling C code.
+[chardet](https://pypi.org/project/chardet) | 5.2.0 | Universal encoding detector for Python 3
+[charset-normalizer](https://pypi.org/project/charset-normalizer) | 3.4.0 | The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
+[clarabel](https://pypi.org/project/clarabel) | 0.10.0 | Clarabel Conic Interior Point Solver for Rust / Python
+[click](https://pypi.org/project/click) | 8.1.8 | Composable command line interface toolkit
+[click-default-group](https://pypi.org/project/click-default-group) | 1.2.4 | click_default_group
+[cloudpickle](https://pypi.org/project/cloudpickle) | 3.1.1 | Pickler class to extend the standard pickle.Pickler functionality
+[cohere](https://pypi.org/project/cohere) | 5.13.12 |
+[colorama](https://pypi.org/project/colorama) | 0.4.6 | Cross-platform colored terminal text.
+[colorcet](https://pypi.org/project/colorcet) | 3.1.0 | Collection of perceptually uniform colormaps
+[colorlog](https://pypi.org/project/colorlog) | 6.8.2 | Add colours to the output of Python's logging module.
+[comm](https://pypi.org/project/comm) | 0.2.2 | Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc.
+[contourpy](https://pypi.org/project/contourpy) | 1.3.1 | Python library for calculating contours of 2D quadrilateral grids
+[cookiecutter](https://pypi.org/project/cookiecutter) | 2.6.0 | A command-line utility that creates projects from project templates, e.g.
+[cryptography](https://pypi.org/project/cryptography) | 44.0.0 | cryptography is a package which provides cryptographic recipes and primitives to Python developers.
+[cvxopt](https://pypi.org/project/cvxopt) | 1.3.2 | Convex optimization package
+[cvxpy](https://pypi.org/project/cvxpy) | 1.6.4 | A domain-specific language for modeling convex optimization problems in Python.
+[cycler](https://pypi.org/project/cycler) | 0.12.1 | Composable style cycles
+[cython](https://pypi.org/project/cython) | 3.0.12 | The Cython compiler for writing C extensions in the Python language.
+[cytoolz](https://pypi.org/project/cytoolz) | 1.0.1 | Cython implementation of Toolz: High performance functional utilities
+[dask](https://pypi.org/project/dask) | 2025.3.0 | Parallel PyData with Task Scheduling
+[datasette](https://pypi.org/project/datasette) | 0.65.1 | An open source multi-tool for exploring and publishing data
+[datasette-graphql](https://pypi.org/project/datasette-graphql) | 2.2 | Datasette plugin providing an automatic GraphQL API for your SQLite databases
+[datashader](https://pypi.org/project/datashader) | 0.17.0 | Data visualization toolchain based on aggregating into a grid
+[deap](https://pypi.org/project/deap) | 1.4.2 | Distributed Evolutionary Algorithms in Python
+[debugpy](https://pypi.org/project/debugpy) | 1.8.0 | An implementation of the Debug Adapter Protocol for Python
+[decorator](https://pypi.org/project/decorator) | 5.1.1 | Decorators for Humans
+[defusedxml](https://pypi.org/project/defusedxml) | 0.7.1 | XML bomb protection for Python stdlib modules
+[deprecated](https://pypi.org/project/deprecated) | 1.2.14 | Python @deprecated decorator to deprecate old python classes, functions or methods.
+[diff-match-patch](https://pypi.org/project/diff-match-patch) | 20241021 | Repackaging of Google's Diff Match and Patch libraries.
+[dill](https://pypi.org/project/dill) | 0.3.9 | serialize all of Python
+[distributed](https://pypi.org/project/distributed) | 2025.3.0 | Distributed scheduler for Dask
+[distro](https://pypi.org/project/distro) | 1.8.0 | Distro - an OS platform information API
+[django](https://pypi.org/project/django) | 5.0.7 | A high-level Python web framework that encourages rapid development and clean, pragmatic design.
+[dnspython](https://pypi.org/project/dnspython) | 2.6.1 | DNS toolkit
+[docstring-to-markdown](https://pypi.org/project/docstring-to-markdown) | 0.15 | On the fly conversion of Python docstrings to markdown
+[docutils](https://pypi.org/project/docutils) | 0.21.2 | Docutils -- Python Documentation Utilities
+[duckdb](https://pypi.org/project/duckdb) | 1.2.2 | DuckDB in-process database
+[entrypoints](https://pypi.org/project/entrypoints) | 0.4 | Discover and load entry points from installed packages.
+[et-xmlfile](https://pypi.org/project/et-xmlfile) | 1.1.0 | An implementation of lxml.xmlfile for the standard library
+[eval-type-backport](https://pypi.org/project/eval-type-backport) | 0.2.2 | Like `typing._eval_type`, but lets older Python versions use newer typing features.
+[executing](https://pypi.org/project/executing) | 2.0.1 | Get the currently executing AST node of a frame, and other information
+[faker](https://pypi.org/project/faker) | 36.1.1 | Faker is a Python package that generates fake data for you.
+[fast-histogram](https://pypi.org/project/fast-histogram) | 0.14 | Fast simple 1D and 2D histograms
+[fastapi](https://pypi.org/project/fastapi) | 0.115.8 | FastAPI framework, high performance, easy to learn, fast to code, ready for production
+[fastavro](https://pypi.org/project/fastavro) | 1.10.0 | Fast read/write of AVRO files
+[fastjsonschema](https://pypi.org/project/fastjsonschema) | 2.18.0 | Fastest Python implementation of JSON schema
+[filelock](https://pypi.org/project/filelock) | 3.17.0 | A platform independent file lock.
+[flake8](https://pypi.org/project/flake8) | 7.1.1 | the modular source code checker: pep8 pyflakes and co
+[flask](https://pypi.org/project/flask) | 3.1.0 | A simple framework for building complex web applications.
+[flexcache](https://pypi.org/project/flexcache) | 0.3 | Saves and loads to the cache a transformed versions of a source object.
+[flexparser](https://pypi.org/project/flexparser) | 0.4 | Parsing made fun ... using typing.
+[flit](https://pypi.org/project/flit) | 3.10.1 | A simple packaging tool for simple packages.
+[flit-core](https://pypi.org/project/flit-core) | 3.10.1 | Distribution-building parts of Flit. See flit package for more information
+[folium](https://pypi.org/project/folium) | 0.19.5 | Make beautiful maps with Leaflet.js & Python
+[fonttools](https://pypi.org/project/fonttools) | 4.55.3 | Tools to manipulate font files
+[fqdn](https://pypi.org/project/fqdn) | 1.5.1 | Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers
+[frozenlist](https://pypi.org/project/frozenlist) | 1.5.0 | A list-like structure which implements collections.abc.MutableSequence
+[fsspec](https://pypi.org/project/fsspec) | 2024.6.1 | File-system specification
+[fuzzywuzzy](https://pypi.org/project/fuzzywuzzy) | 0.18.0 | Fuzzy string matching in python
+[geographiclib](https://pypi.org/project/geographiclib) | 2.0 | The geodesic routines from GeographicLib
+[geopandas](https://pypi.org/project/geopandas) | 1.0.1 | Geographic pandas extensions
+[geopy](https://pypi.org/project/geopy) | 2.4.1 | Python Geocoding Toolbox
+[gitdb](https://pypi.org/project/gitdb) | 4.0.10 | Git Object Database
+[gitpython](https://pypi.org/project/gitpython) | 3.1.32 | GitPython is a Python library used to interact with Git repositories
+[google-auth](https://pypi.org/project/google-auth) | 2.37.0 | Google Authentication Library
+[graphene](https://pypi.org/project/graphene) | 3.3 | GraphQL Framework for Python
+[graphql-core](https://pypi.org/project/graphql-core) | 3.2.3 | GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL.
+[graphql-relay](https://pypi.org/project/graphql-relay) | 3.2.0 | Relay library for graphql-core
+[greenlet](https://pypi.org/project/greenlet) | 3.1.1 | Lightweight in-process concurrent programming
+[griffe](https://pypi.org/project/griffe) | 1.5.5 | Signatures for entire Python programs.
+[groq](https://pypi.org/project/groq) | 0.13.1 | The official Python library for the groq API
+[guidata](https://pypi.org/project/guidata) | 3.7.1 | Automatic GUI generation for easy dataset editing and display
+[h11](https://pypi.org/project/h11) | 0.14.0 | A pure-Python, bring-your-own-I/O implementation of HTTP/1.1
+[h2](https://pypi.org/project/h2) | 4.1.0 | HTTP/2 State-Machine based protocol implementation
+[h5py](https://pypi.org/project/h5py) | 3.12.1 | Read and write HDF5 files from Python
+[hatchling](https://pypi.org/project/hatchling) | 1.27.0 | Modern, extensible Python build backend
+[holoviews](https://pypi.org/project/holoviews) | 1.20.2 | A high-level plotting API for the PyData ecosystem built on HoloViews.
+[hpack](https://pypi.org/project/hpack) | 4.1.0 | Pure-Python HPACK header encoding
+[html5lib](https://pypi.org/project/html5lib) | 1.1 | HTML parser based on the WHATWG HTML specification
+[httpcore](https://pypi.org/project/httpcore) | 1.0.5 | A minimal low-level HTTP client.
+[httpie](https://pypi.org/project/httpie) | 3.2.4 | HTTPie: modern, user-friendly command-line HTTP client for the API era.
+[httpx](https://pypi.org/project/httpx) | 0.27.2 | The next generation HTTP client.
+[httpx-sse](https://pypi.org/project/httpx-sse) | 0.4.0 | Consume Server-Sent Event (SSE) messages with HTTPX.
+[huggingface-hub](https://pypi.org/project/huggingface-hub) | 0.29.3 | Client library to download and publish models, datasets and other repos on the huggingface.co hub
+[hupper](https://pypi.org/project/hupper) | 1.12 | Integrated process monitor for developing and reloading daemons.
+[hvplot](https://pypi.org/project/hvplot) | 0.11.2 | A high-level plotting API for the PyData ecosystem built on HoloViews.
+[hypercorn](https://pypi.org/project/hypercorn) | 0.17.3 | A ASGI Server based on Hyper libraries and inspired by Gunicorn
+[hyperframe](https://pypi.org/project/hyperframe) | 6.1.0 | Pure-Python HTTP/2 framing
+[hypothesis](https://pypi.org/project/hypothesis) | 6.130.4 | A library for property-based testing
+[id](https://pypi.org/project/id) | 1.5.0 | A tool for generating OIDC identities
+[idna](https://pypi.org/project/idna) | 3.10 | Internationalized Domain Names in Applications (IDNA)
+[imageio](https://pypi.org/project/imageio) | 2.37.0 | Library for reading and writing a wide range of image, video, scientific, and volumetric data formats.
+[imagesize](https://pypi.org/project/imagesize) | 1.4.1 | Getting image size from png/jpeg/jpeg2000/gif file
+[imbalanced-learn](https://pypi.org/project/imbalanced-learn) | 0.13.0 | Toolbox for imbalanced dataset in machine learning
+[importlib-metadata](https://pypi.org/project/importlib-metadata) | 8.6.1 | Read metadata from Python packages
+[inflection](https://pypi.org/project/inflection) | 0.5.1 | A port of Ruby on Rails inflector to Python
+[iniconfig](https://pypi.org/project/iniconfig) | 2.0.0 | brain-dead simple config-ini parsing
+[intervaltree](https://pypi.org/project/intervaltree) | 3.0.2 | Editable interval tree data structure for Python 2 and 3
+[ipycanvas](https://pypi.org/project/ipycanvas) | 0.13.3 | Interactive widgets library exposing the browser's Canvas API
+[ipykernel](https://pypi.org/project/ipykernel) | 6.29.5 | IPython Kernel for Jupyter
+[ipyleaflet](https://pypi.org/project/ipyleaflet) | 0.19.2 | A Jupyter widget for dynamic Leaflet maps
+[ipympl](https://pypi.org/project/ipympl) | 0.9.7 | Matplotlib Jupyter Extension
+[ipython](https://pypi.org/project/ipython) | 8.34.0 | IPython: Productive Interactive Computing
+[ipython-genutils](https://pypi.org/project/ipython-genutils) | 0.2.0 | Vestigial utilities from IPython
+[ipython-sql](https://pypi.org/project/ipython-sql) | 0.5.0 | RDBMS access via IPython
+[ipywidgets](https://pypi.org/project/ipywidgets) | 8.1.6 | Jupyter interactive widgets
+[isoduration](https://pypi.org/project/isoduration) | 20.11.0 | Operations with ISO 8601 durations
+[isort](https://pypi.org/project/isort) | 5.13.2 | A Python utility / library to sort Python imports.
+[itsdangerous](https://pypi.org/project/itsdangerous) | 2.2.0 | Safely pass data to untrusted environments and back.
+[janus](https://pypi.org/project/janus) | 2.0.0 | Mixed sync-async queue to interoperate between asyncio tasks and classic threads
+[jaraco-classes](https://pypi.org/project/jaraco-classes) | 3.4.0 | Utility functions for Python class constructs
+[jaraco-context](https://pypi.org/project/jaraco-context) | 6.0.1 | Useful decorators and context managers
+[jaraco-functools](https://pypi.org/project/jaraco-functools) | 4.1.0 | Functools like those found in stdlib
+[jedi](https://pypi.org/project/jedi) | 0.19.2 | An autocompletion tool for Python that can be used for text editors.
+[jellyfish](https://pypi.org/project/jellyfish) | 1.1.3 | Approximate and phonetic matching of strings.
+[jinja2](https://pypi.org/project/jinja2) | 3.1.2 | A very fast and expressive template engine.
+[jiter](https://pypi.org/project/jiter) | 0.8.2 | Fast iterable JSON parser.
+[joblib](https://pypi.org/project/joblib) | 1.4.2 | Lightweight pipelining with Python functions
+[json5](https://pypi.org/project/json5) | 0.9.14 | A Python implementation of the JSON5 data format.
+[jsonpatch](https://pypi.org/project/jsonpatch) | 1.33 | Apply JSON-Patches (RFC 6902)
+[jsonpath-python](https://pypi.org/project/jsonpath-python) | 1.0.6 | A more powerful JSONPath implementation in modern python
+[jsonpointer](https://pypi.org/project/jsonpointer) | 2.4 | Identify specific nodes in a JSON document (RFC 6901)
+[jsonschema](https://pypi.org/project/jsonschema) | 4.19.2 | An implementation of JSON Schema validation for Python
+[jsonschema-specifications](https://pypi.org/project/jsonschema-specifications) | 2023.12.1 | The JSON Schema meta-schemas and vocabularies, exposed as a Registry
+[julia](https://pypi.org/project/julia) | 0.6.2 | Julia/Python bridge with IPython support.
+[jupyter](https://pypi.org/project/jupyter) | 1.1.1 | Jupyter metapackage. Install all the Jupyter components in one go.
+[jupyter-bokeh](https://pypi.org/project/jupyter-bokeh) | 4.0.5 | A Jupyter extension for rendering Bokeh content.
+[jupyter-client](https://pypi.org/project/jupyter-client) | 8.6.3 | Jupyter protocol implementation and client libraries
+[jupyter-console](https://pypi.org/project/jupyter-console) | 6.6.3 | Jupyter terminal console
+[jupyter-core](https://pypi.org/project/jupyter-core) | 5.7.2 | Jupyter core package. A base package on which Jupyter projects rely.
+[jupyter-events](https://pypi.org/project/jupyter-events) | 0.12.0 | Jupyter Event System library
+[jupyter-leaflet](https://pypi.org/project/jupyter-leaflet) | 0.19.2 | ipyleaflet extensions for JupyterLab and Jupyter Notebook
+[jupyter-lsp](https://pypi.org/project/jupyter-lsp) | 2.2.5 | Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server
+[jupyter-server](https://pypi.org/project/jupyter-server) | 2.14.2 | The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications.
+[jupyter-server-terminals](https://pypi.org/project/jupyter-server-terminals) | 0.5.3 | A Jupyter Server Extension Providing Terminals.
+[jupyterlab](https://pypi.org/project/jupyterlab) | 4.4.1 | JupyterLab computational environment
+[jupyterlab-pygments](https://pypi.org/project/jupyterlab-pygments) | 0.3.0 | Pygments theme using JupyterLab CSS variables
+[jupyterlab-server](https://pypi.org/project/jupyterlab-server) | 2.27.3 | A set of server components for JupyterLab and JupyterLab like applications.
+[jupyterlab-widgets](https://pypi.org/project/jupyterlab-widgets) | 3.0.14 | Jupyter interactive widgets for JupyterLab
+[keras](https://pypi.org/project/keras) | 3.9.2 | Multi-backend Keras
+[keyring](https://pypi.org/project/keyring) | 25.6.0 | Store and access your passwords safely.
+[kiwisolver](https://pypi.org/project/kiwisolver) | 1.4.8 | A fast implementation of the Cassowary constraint solver
+[langchain](https://pypi.org/project/langchain) | 0.3.23 | Building applications with LLMs through composability
+[langchain-core](https://pypi.org/project/langchain-core) | 0.3.51 | Building applications with LLMs through composability
+[langchain-text-splitters](https://pypi.org/project/langchain-text-splitters) | 0.3.8 | LangChain text splitting utilities
+[langsmith](https://pypi.org/project/langsmith) | 0.3.24 | Client library to connect to the LangSmith LLM Tracing and Evaluation Platform.
+[lazy-loader](https://pypi.org/project/lazy-loader) | 0.4 | Makes it easy to load subpackages and functions on demand.
+[linkify-it-py](https://pypi.org/project/linkify-it-py) | 2.0.2 | Links recognition library with FULL unicode support.
+[llvmlite](https://pypi.org/project/llvmlite) | 0.44.0 | lightweight wrapper around basic LLVM functionality
+[lmfit](https://pypi.org/project/lmfit) | 1.3.1 | Least-Squares Minimization with Bounds and Constraints
+[locket](https://pypi.org/project/locket) | 1.0.0 | File-based locks for Python on Linux and Windows
+[logfire-api](https://pypi.org/project/logfire-api) | 3.5.3 | Shim for the Logfire SDK which does nothing unless Logfire is installed
+[lxml](https://pypi.org/project/lxml) | 5.3.0 | Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
+[mako](https://pypi.org/project/mako) | 1.3.5 | A super-fast templating language that borrows the best ideas from the existing templating languages.
+[markdown](https://pypi.org/project/markdown) | 3.7 | Python implementation of John Gruber's Markdown.
+[markdown-it-py](https://pypi.org/project/markdown-it-py) | 2.2.0 | Python port of markdown-it. Markdown parsing, done right!
+[markupsafe](https://pypi.org/project/markupsafe) | 3.0.2 | Safely add untrusted strings to HTML/XML markup.
+[matplotlib](https://pypi.org/project/matplotlib) | 3.10.1 | Python plotting package
+[matplotlib-inline](https://pypi.org/project/matplotlib-inline) | 0.1.7 | Inline Matplotlib backend for Jupyter
+[maturin](https://pypi.org/project/maturin) | 1.8.1 | Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages
+[mccabe](https://pypi.org/project/mccabe) | 0.7.0 | McCabe checker, plugin for flake8
+[mdit-py-plugins](https://pypi.org/project/mdit-py-plugins) | 0.3.5 | Collection of plugins for markdown-it-py
+[mdurl](https://pypi.org/project/mdurl) | 0.1.2 | Markdown URL utilities
+[mercantile](https://pypi.org/project/mercantile) | 1.2.1 | Web mercator XYZ tile utilities
+[mergedeep](https://pypi.org/project/mergedeep) | 1.3.4 | A deep merge function for 🐍.
+[missingno](https://pypi.org/project/missingno) | 0.5.1 | Missing data visualization module for Python.
+[mistralai](https://pypi.org/project/mistralai) | 1.2.5 | Python Client SDK for the Mistral AI API.
+[mistune](https://pypi.org/project/mistune) | 2.0.5 | A sane Markdown parser with useful plugins and renderers
+[mizani](https://pypi.org/project/mizani) | 0.11.4 | Scales for Python
+[ml-dtypes](https://pypi.org/project/ml-dtypes) | 0.5.0 |
+[mlxtend](https://pypi.org/project/mlxtend) | 0.23.3 | Machine Learning Library Extensions
+[more-itertools](https://pypi.org/project/more-itertools) | 10.2.0 | More routines for operating on iterables, beyond itertools
+[mpl-scatter-density](https://pypi.org/project/mpl-scatter-density) | 0.7 | Matplotlib helpers to make density scatter plots
+[mpld3](https://pypi.org/project/mpld3) | 0.5.8 | D3 Viewer for Matplotlib
+[mpmath](https://pypi.org/project/mpmath) | 1.3.0 | Python library for arbitrary-precision floating-point arithmetic
+[msal](https://pypi.org/project/msal) | 1.30.0 | The Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of us
+[msal-extensions](https://pypi.org/project/msal-extensions) | 1.2.0 | Microsoft Authentication Library extensions (MSAL EX) provides a persistence API that can save your data on disk, encrypted on Windows, macOS an
+[msgpack](https://pypi.org/project/msgpack) | 1.1.0 | MessagePack serializer
+[multidict](https://pypi.org/project/multidict) | 6.1.0 | multidict implementation
+[multipledispatch](https://pypi.org/project/multipledispatch) | 1.0.0 | Multiple dispatch
+[mypy](https://pypi.org/project/mypy) | 1.15.0 | Optional static typing for Python
+[mypy-extensions](https://pypi.org/project/mypy-extensions) | 1.0.0 | Type system extensions for programs checked with the mypy type checker.
+[mysql-connector-python](https://pypi.org/project/mysql-connector-python) | 9.2.0 | A self-contained Python driver for communicating with MySQL servers, using an API that is compliant with the Python Database API Specification v
+[namex](https://pypi.org/project/namex) | 0.0.8 | A simple utility to separate the implementation of your Python package and its public API surface.
+[narwhals](https://pypi.org/project/narwhals) | 1.30.0 | Extremely lightweight compatibility layer between dataframe libraries
+[nbclient](https://pypi.org/project/nbclient) | 0.10.0 | A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor.
+[nbconvert](https://pypi.org/project/nbconvert) | 7.16.1 | Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script.
+[nbformat](https://pypi.org/project/nbformat) | 5.10.4 | The Jupyter Notebook format
+[nest-asyncio](https://pypi.org/project/nest-asyncio) | 1.6.0 | Patch asyncio to allow nested event loops
+[networkx](https://pypi.org/project/networkx) | 3.4.2 | Python package for creating and manipulating graphs and networks
+[nh3](https://pypi.org/project/nh3) | 0.2.18 | Python bindings to the ammonia HTML sanitization library.
+[nltk](https://pypi.org/project/nltk) | 3.9.1 | Natural Language Toolkit
+[notebook](https://pypi.org/project/notebook) | 7.4.0 | Jupyter Notebook - A web-based notebook environment for interactive computing
+[notebook-shim](https://pypi.org/project/notebook-shim) | 0.2.4 | A shim layer for notebook traits and config
+[numba](https://pypi.org/project/numba) | 0.61.2 | compiling Python code using LLVM
+[numpy](https://pypi.org/project/numpy) | 2.2.4 | Fundamental package for array computing in Python
+[numpydoc](https://pypi.org/project/numpydoc) | 1.6.0 | Sphinx extension to support docstrings in Numpy format
+[openai](https://pypi.org/project/openai) | 1.72.0 | The official Python library for the openai API
+[opencv-python](https://pypi.org/project/opencv-python) | 4.11.0.86 | Wrapper package for OpenCV python bindings.
+[openpyxl](https://pypi.org/project/openpyxl) | 3.1.2 | A Python library to read/write Excel 2010 xlsx/xlsm files
+[optree](https://pypi.org/project/optree) | 0.14.0 | Optimized PyTree Utilities.
+[optuna](https://pypi.org/project/optuna) | 3.6.1 | A hyperparameter optimization framework
+[orjson](https://pypi.org/project/orjson) | 3.10.12 | Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
+[osqp](https://pypi.org/project/osqp) | 0.6.7.post3 | OSQP: The Operator Splitting QP Solver
+[outcome](https://pypi.org/project/outcome) | 1.3.0.post0 | Capture the outcome of Python function calls.
+[overrides](https://pypi.org/project/overrides) | 7.7.0 | A decorator to automatically detect mismatch when overriding a method.
+[packaging](https://pypi.org/project/packaging) | 24.2 | Core utilities for Python packages
+[pandas](https://pypi.org/project/pandas) | 2.2.3 | Powerful data structures for data analysis, time series, and statistics
+[pandocfilters](https://pypi.org/project/pandocfilters) | 1.5.0 | Utilities for writing pandoc filters in python
+[panel](https://pypi.org/project/panel) | 1.6.2 | The powerful data exploration & web app framework for Python.
+[papermill](https://pypi.org/project/papermill) | 2.6.0 | Parameterize and run Jupyter and nteract Notebooks
+[param](https://pypi.org/project/param) | 2.2.0 | Make your Python code clearer and more reliable by declaring Parameters.
+[parso](https://pypi.org/project/parso) | 0.8.4 | A Python Parser
+[partd](https://pypi.org/project/partd) | 1.4.0 | Appendable key-value storage
+[pathspec](https://pypi.org/project/pathspec) | 0.11.0 | Utility library for gitignore style pattern matching of file paths.
+[patsy](https://pypi.org/project/patsy) | 0.5.6 | A Python package for describing statistical models and for building design matrices.
+[pep8](https://pypi.org/project/pep8) | 1.7.1 | Python style guide checker
+[pexpect](https://pypi.org/project/pexpect) | 4.8.0 | Pexpect allows easy control of interactive console applications.
+[pg8000](https://pypi.org/project/pg8000) | 1.23.0 | PostgreSQL interface library
+[pickleshare](https://pypi.org/project/pickleshare) | 0.7.5 | Tiny 'shelve'-like database with concurrency support
+[pillow](https://pypi.org/project/pillow) | 11.1.0 | Python Imaging Library (Fork)
+[pip](https://pypi.org/project/pip) | 25.0.1 | The PyPA recommended tool for installing Python packages.
+[platformdirs](https://pypi.org/project/platformdirs) | 4.3.6 | A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`.
+[plotly](https://pypi.org/project/plotly) | 6.0.1 | An open-source interactive data visualization library for Python
+[plotnine](https://pypi.org/project/plotnine) | 0.13.6 | A Grammar of Graphics for Python
+[plotpy](https://pypi.org/project/plotpy) | 2.7.2 | Curve and image plotting tools for Python/Qt applications
+[pluggy](https://pypi.org/project/pluggy) | 1.5.0 | plugin and hook calling mechanisms for python
+[ply](https://pypi.org/project/ply) | 3.11 | Python Lex & Yacc
+[polars](https://pypi.org/project/polars) | 1.27.1 | Blazingly fast DataFrame library
+[portalocker](https://pypi.org/project/portalocker) | 2.7.0 | Wraps the portalocker recipe for easy usage
+[prettytable](https://pypi.org/project/prettytable) | 3.3.0 | A simple Python library for easily displaying tabular data in a visually appealing ASCII table format
+[prince](https://pypi.org/project/prince) | 0.15.0 | Factor analysis in Python: PCA, CA, MCA, MFA, FAMD, GPA
+[priority](https://pypi.org/project/priority) | 2.0.0 | A pure-Python implementation of the HTTP/2 priority tree
+[prometheus-client](https://pypi.org/project/prometheus-client) | 0.21.1 | Python client for the Prometheus monitoring system.
+[prompt-toolkit](https://pypi.org/project/prompt-toolkit) | 3.0.50 | Library for building powerful interactive command lines in Python
+[propcache](https://pypi.org/project/propcache) | 0.2.1 | Accelerated property cache
+[protobuf](https://pypi.org/project/protobuf) | 5.27.3 |
+[psutil](https://pypi.org/project/psutil) | 5.9.8 | Cross-platform lib for process and system monitoring in Python.
+[psygnal](https://pypi.org/project/psygnal) | 0.11.1 | Fast python callback/event system modeled after Qt Signals
+[ptpython](https://pypi.org/project/ptpython) | 3.0.29 | Python REPL build on top of prompt_toolkit
+[ptyprocess](https://pypi.org/project/ptyprocess) | 0.7.0 | Run a subprocess in a pseudo terminal
+[pure-eval](https://pypi.org/project/pure-eval) | 0.2.2 | Safely evaluate AST nodes without side effects
+[pyarrow](https://pypi.org/project/pyarrow) | 19.0.1 | Python library for Apache Arrow
+[pyasn1](https://pypi.org/project/pyasn1) | 0.6.1 | Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)
+[pyasn1-modules](https://pypi.org/project/pyasn1-modules) | 0.4.1 | A collection of ASN.1-based protocols modules
+[pybind11](https://pypi.org/project/pybind11) | 2.13.6 | Seamless operability between C++11 and Python
+[pycodestyle](https://pypi.org/project/pycodestyle) | 2.12.0 | Python style guide checker
+[pycparser](https://pypi.org/project/pycparser) | 2.22 | C parser in Python
+[pyct](https://pypi.org/project/pyct) | 0.5.0 | Python package common tasks for users (e.g. copy examples, fetch data, ...)
+[pydantic](https://pypi.org/project/pydantic) | 2.10.6 | Data validation using Python type hints
+[pydantic-ai](https://pypi.org/project/pydantic-ai) | 0.0.24 | Agent Framework / shim to use Pydantic with LLMs
+[pydantic-ai-slim](https://pypi.org/project/pydantic-ai-slim) | 0.0.24 | Agent Framework / shim to use Pydantic with LLMs, slim package
+[pydantic-core](https://pypi.org/project/pydantic-core) | 2.27.2 | Core functionality for Pydantic validation and serialization
+[pydantic-graph](https://pypi.org/project/pydantic-graph) | 0.0.24 | Graph and state machine library
+[pydeck](https://pypi.org/project/pydeck) | 0.9.1 | Widget for deck.gl maps
+[pydocstyle](https://pypi.org/project/pydocstyle) | 6.3.0 | Python docstring style checker
+[pydub](https://pypi.org/project/pydub) | 0.25.1 | Manipulate audio with an simple and easy high level interface
+[pyerfa](https://pypi.org/project/pyerfa) | 2.0.1.4 | Python bindings for ERFA
+[pyflakes](https://pypi.org/project/pyflakes) | 3.2.0 | passive checker of Python programs
+[pygithub](https://pypi.org/project/pygithub) | 2.6.1 | Use the full Github API v3
+[pygments](https://pypi.org/project/pygments) | 2.19.1 | Pygments is a syntax highlighting package written in Python.
+[pyjwt](https://pypi.org/project/pyjwt) | 2.10.1 | JSON Web Token implementation in Python
+[pylint](https://pypi.org/project/pylint) | 3.1.0 | python code static checker
+[pylint-venv](https://pypi.org/project/pylint-venv) | 3.0.3 | pylint-venv provides a Pylint init-hook to use the same Pylint installation with different virtual environments.
+[pyls-spyder](https://pypi.org/project/pyls-spyder) | 0.4.0 | Spyder extensions for the python-lsp-server
+[pymongo](https://pypi.org/project/pymongo) | 4.10.1 | Python driver for MongoDB
+[pympler](https://pypi.org/project/pympler) | 1.1 | A development tool to measure, monitor and analyze the memory behavior of Python objects.
+[pynacl](https://pypi.org/project/pynacl) | 1.5.0 | Python binding to the Networking and Cryptography (NaCl) library
+[pynndescent](https://pypi.org/project/pynndescent) | 0.5.12 | Nearest Neighbor Descent
+[pyodbc](https://pypi.org/project/pyodbc) | 5.2.0 | DB API module for ODBC
+[pyogrio](https://pypi.org/project/pyogrio) | 0.10.0 | Vectorized spatial vector file format I/O using GDAL/OGR
+[pyomo](https://pypi.org/project/pyomo) | 6.9.1 | Pyomo: Python Optimization Modeling Objects
+[pypandoc](https://pypi.org/project/pypandoc) | 1.15 | Thin wrapper for pandoc.
+[pyparsing](https://pypi.org/project/pyparsing) | 3.2.1 | pyparsing module - Classes and methods to define and execute parsing grammars
+[pypdf](https://pypi.org/project/pypdf) | 5.1.0 | A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files
+[pyproj](https://pypi.org/project/pyproj) | 3.7.0 | Python interface to PROJ (cartographic projections and coordinate transformations library)
+[pyproject-hooks](https://pypi.org/project/pyproject-hooks) | 1.1.0 | Wrappers to call pyproject.toml-based build backend hooks.
+[pyqt5](https://pypi.org/project/pyqt5) | 5.15.10 | Python bindings for the Qt cross platform application toolkit
+[pyqt5-qt5](https://pypi.org/project/pyqt5-qt5) | 5.15.2 | The subset of a Qt installation needed by PyQt5.
+[pyqt5-sip](https://pypi.org/project/pyqt5-sip) | 12.16.1 | The sip module support for PyQt5
+[pyqtgraph](https://pypi.org/project/pyqtgraph) | 0.13.7 | Scientific Graphics and GUI Library for Python
+[pyqtwebengine](https://pypi.org/project/pyqtwebengine) | 5.15.6 | Python bindings for the Qt WebEngine framework
+[pyqtwebengine-qt5](https://pypi.org/project/pyqtwebengine-qt5) | 5.15.2 | The subset of a Qt installation needed by PyQtWebEngine.
+[pyserial](https://pypi.org/project/pyserial) | 3.5 | Python Serial Port Extension
+[pysocks](https://pypi.org/project/pysocks) | 1.7.1 | A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information.
+[pyspnego](https://pypi.org/project/pyspnego) | 0.11.2 | Windows Negotiate Authentication Client and Server
+[pytest](https://pypi.org/project/pytest) | 8.3.4 | pytest: simple powerful testing with Python
+[python-barcode](https://pypi.org/project/python-barcode) | 0.15.1 | Create standard barcodes with Python. No external modules needed. (optional Pillow support included).
+[python-dateutil](https://pypi.org/project/python-dateutil) | 2.8.2 | Extensions to the standard Python datetime module
+[python-dotenv](https://pypi.org/project/python-dotenv) | 1.0.1 | Read key-value pairs from a .env file and set them as environment variables
+[python-json-logger](https://pypi.org/project/python-json-logger) | 2.0.7 | A python library adding a json log formatter
+[python-lsp-black](https://pypi.org/project/python-lsp-black) | 2.0.0 | Black plugin for the Python LSP Server
+[python-lsp-jsonrpc](https://pypi.org/project/python-lsp-jsonrpc) | 1.1.2 | JSON RPC 2.0 server library
+[python-lsp-server](https://pypi.org/project/python-lsp-server) | 1.12.0 | Python Language Server for the Language Server Protocol
+[python-multipart](https://pypi.org/project/python-multipart) | 0.0.9 | A streaming multipart parser for Python
+[python-slugify](https://pypi.org/project/python-slugify) | 8.0.4 | A Python slugify application that also handles Unicode
+[pythonqwt](https://pypi.org/project/pythonqwt) | 0.14.4 | Qt plotting widgets for Python
+[pytoolconfig](https://pypi.org/project/pytoolconfig) | 1.3.1 | Python tool configuration
+[pytz](https://pypi.org/project/pytz) | 2024.2 | World timezone definitions, modern and historical
+[pyuca](https://pypi.org/project/pyuca) | 1.2 | a Python implementation of the Unicode Collation Algorithm
+[pyusb](https://pypi.org/project/pyusb) | 1.3.1 | Easy USB access for Python
+[pyviz-comms](https://pypi.org/project/pyviz-comms) | 3.0.3 | A JupyterLab extension for rendering HoloViz content.
+[pywavelets](https://pypi.org/project/pywavelets) | 1.8.0 | PyWavelets, wavelet transform module
+[pywin32](https://pypi.org/project/pywin32) | 308 | Python for Window Extensions
+[pywin32-ctypes](https://pypi.org/project/pywin32-ctypes) | 0.2.2 | A (partial) reimplementation of pywin32 using ctypes/cffi
+[pywinpty](https://pypi.org/project/pywinpty) | 2.0.14 | Pseudo terminal support for Windows from Python.
+[pyyaml](https://pypi.org/project/pyyaml) | 6.0.2 | YAML parser and emitter for Python
+[pyzmq](https://pypi.org/project/pyzmq) | 26.2.1 | Python bindings for 0MQ
+[qdarkstyle](https://pypi.org/project/qdarkstyle) | 3.2.3 | The most complete dark/light style sheet for C++/Python and Qt applications
+[qdldl](https://pypi.org/project/qdldl) | 0.1.7.post5 | QDLDL, a free LDL factorization routine.
+[qrcode](https://pypi.org/project/qrcode) | 8.0 | QR Code image generator
+[qstylizer](https://pypi.org/project/qstylizer) | 0.2.2 | Stylesheet Generator for PyQt{4-5}/PySide{1-2}
+[qtawesome](https://pypi.org/project/qtawesome) | 1.4.0 | FontAwesome icons in PyQt and PySide applications
+[qtconsole](https://pypi.org/project/qtconsole) | 5.6.1 | Jupyter Qt console
+[qtpy](https://pypi.org/project/qtpy) | 2.4.1 | Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6).
+[quantecon](https://pypi.org/project/quantecon) | 0.7.2 | Import the main names to top level.
+[quart](https://pypi.org/project/quart) | 0.20.0 | A Python ASGI web framework with the same API as Flask
+[rapidfuzz](https://pypi.org/project/rapidfuzz) | 3.9.6 | rapid fuzzy string matching
+[readme-renderer](https://pypi.org/project/readme-renderer) | 44.0 | readme_renderer is a library for rendering readme descriptions for Warehouse
+[redis](https://pypi.org/project/redis) | 5.0.8 | Python client for Redis database and key-value store
+[referencing](https://pypi.org/project/referencing) | 0.35.1 | JSON Referencing + Python
+[regex](https://pypi.org/project/regex) | 2024.11.6 | Alternative regular expression module, to replace re.
+[reportlab](https://pypi.org/project/reportlab) | 4.2.5 | The Reportlab Toolkit
+[requests](https://pypi.org/project/requests) | 2.32.3 | Python HTTP for Humans.
+[requests-ntlm](https://pypi.org/project/requests-ntlm) | 1.3.0 | This package allows for HTTP NTLM authentication using the requests library.
+[requests-toolbelt](https://pypi.org/project/requests-toolbelt) | 1.0.0 | A utility belt for advanced users of python-requests
+[rfc3339-validator](https://pypi.org/project/rfc3339-validator) | 0.1.4 | A pure python RFC3339 validator
+[rfc3986](https://pypi.org/project/rfc3986) | 2.0.0 | Validating URI References per RFC 3986
+[rfc3986-validator](https://pypi.org/project/rfc3986-validator) | 0.1.1 | Pure python rfc3986 validator
+[rich](https://pypi.org/project/rich) | 13.9.4 | Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal
+[rope](https://pypi.org/project/rope) | 1.12.0 | a python refactoring library...
+[rpds-py](https://pypi.org/project/rpds-py) | 0.22.3 | Python bindings to Rust's persistent data structures (rpds)
+[rsa](https://pypi.org/project/rsa) | 4.7.2 | Pure-Python RSA implementation
+[rtree](https://pypi.org/project/rtree) | 1.3.0 | R-Tree spatial index for Python GIS
+[rx](https://pypi.org/project/rx) | 3.2.0 | Reactive Extensions (Rx) for Python
+[scikit-image](https://pypi.org/project/scikit-image) | 0.25.2 | Image processing in Python
+[scikit-learn](https://pypi.org/project/scikit-learn) | 1.6.1 | A set of python modules for machine learning and data mining
+[scipy](https://pypi.org/project/scipy) | 1.15.2 | Fundamental algorithms for scientific computing in Python
+[scramp](https://pypi.org/project/scramp) | 1.4.5 | An implementation of the SCRAM protocol.
+[scs](https://pypi.org/project/scs) | 3.2.7.post2 | Splitting conic solver
+[seaborn](https://pypi.org/project/seaborn) | 0.13.2 | Statistical data visualization
+[send2trash](https://pypi.org/project/send2trash) | 1.8.3 | Send file to trash natively under Mac OS X, Windows and Linux
+[setuptools](https://pypi.org/project/setuptools) | 75.8.2 | Easily download, build, install, upgrade, and uninstall Python packages
+[shapely](https://pypi.org/project/shapely) | 2.0.6 | Manipulation and analysis of geometric objects
+[shellingham](https://pypi.org/project/shellingham) | 1.5.4 | Tool to Detect Surrounding Shell
+[simplejson](https://pypi.org/project/simplejson) | 3.19.3 | Simple, fast, extensible JSON encoder/decoder for Python
+[simpy](https://pypi.org/project/simpy) | 4.1.1 | Event discrete, process based simulation for Python.
+[six](https://pypi.org/project/six) | 1.16.0 | Python 2 and 3 compatibility utilities
+[sklearn-compat](https://pypi.org/project/sklearn-compat) | 0.1.3 | Ease support for compatible scikit-learn estimators across versions
+[skrub](https://pypi.org/project/skrub) | 0.5.1 | Prepping tables for machine learning
+[smmap](https://pypi.org/project/smmap) | 5.0.0 | A pure Python implementation of a sliding window memory map manager
+[sniffio](https://pypi.org/project/sniffio) | 1.3.0 | Sniff out which async library your code is running under
+[snowballstemmer](https://pypi.org/project/snowballstemmer) | 2.2.0 | This package provides 29 stemmers for 28 languages generated from Snowball algorithms.
+[sortedcontainers](https://pypi.org/project/sortedcontainers) | 2.4.0 | Sorted Containers -- Sorted List, Sorted Dict, Sorted Set
+[sounddevice](https://pypi.org/project/sounddevice) | 0.5.1 | Play and Record Sound with Python
+[soupsieve](https://pypi.org/project/soupsieve) | 2.6 | A modern CSS selector implementation for Beautiful Soup.
+[sphinx](https://pypi.org/project/sphinx) | 7.3.7 | Python documentation generator
+[sphinx-rtd-theme](https://pypi.org/project/sphinx-rtd-theme) | 3.0.2 | Read the Docs theme for Sphinx
+[sphinxcontrib-applehelp](https://pypi.org/project/sphinxcontrib-applehelp) | 2.0.0 | sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books
+[sphinxcontrib-devhelp](https://pypi.org/project/sphinxcontrib-devhelp) | 2.0.0 | sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents
+[sphinxcontrib-htmlhelp](https://pypi.org/project/sphinxcontrib-htmlhelp) | 2.1.0 | sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files
+[sphinxcontrib-jquery](https://pypi.org/project/sphinxcontrib-jquery) | 4.1 | Extension to include jQuery on newer Sphinx releases
+[sphinxcontrib-jsmath](https://pypi.org/project/sphinxcontrib-jsmath) | 1.0.1 | A sphinx extension which renders display math in HTML via JavaScript
+[sphinxcontrib-qthelp](https://pypi.org/project/sphinxcontrib-qthelp) | 2.0.0 | sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents
+[sphinxcontrib-serializinghtml](https://pypi.org/project/sphinxcontrib-serializinghtml) | 2.0.0 | sphinxcontrib-serializinghtml is a sphinx extension which outputs "serialized" HTML files (json and pickle)
+[spyder](https://pypi.org/project/spyder) | 6.0.5 | The Scientific Python Development Environment
+[spyder-kernels](https://pypi.org/project/spyder-kernels) | 3.0.3 | Jupyter kernels for Spyder's console
+[sqlalchemy](https://pypi.org/project/sqlalchemy) | 2.0.38 | Database Abstraction Library
+[sqlite-bro](https://pypi.org/project/sqlite-bro) | 0.13.1 | a graphic SQLite Client in 1 Python file
+[sqlite-fts4](https://pypi.org/project/sqlite-fts4) | 1.0.3 | Python functions for working with SQLite FTS4 search
+[sqlite-utils](https://pypi.org/project/sqlite-utils) | 3.38 | CLI tool and Python library for manipulating SQLite databases
+[sqlparse](https://pypi.org/project/sqlparse) | 0.5.3 | A non-validating SQL parser.
+[squarify](https://pypi.org/project/squarify) | 0.4.4 | Pure Python implementation of the squarify treemap layout algorithm
+[sspilib](https://pypi.org/project/sspilib) | 0.2.0 | SSPI API bindings for Python
+[stack-data](https://pypi.org/project/stack-data) | 0.6.3 | Extract data from python stack frames and tracebacks for informative displays
+[starlette](https://pypi.org/project/starlette) | 0.45.3 | The little ASGI library that shines.
+[statsmodels](https://pypi.org/project/statsmodels) | 0.14.4 | Statistical computations and models for Python
+[streamlit](https://pypi.org/project/streamlit) | 1.44.0 | A faster way to build and share data apps
+[superqt](https://pypi.org/project/superqt) | 0.7.1 | Missing widgets and components for PyQt/PySide
+[sv-ttk](https://pypi.org/project/sv-ttk) | 2.6.0 | A gorgeous theme for Tkinter, based on Windows 11's UI
+[sympy](https://pypi.org/project/sympy) | 1.13.3 | Computer algebra system (CAS) in Python
+[tabulate](https://pypi.org/project/tabulate) | 0.9.0 | Pretty-print tabular data
+[tblib](https://pypi.org/project/tblib) | 3.0.0 | Traceback serialization library.
+[tenacity](https://pypi.org/project/tenacity) | 9.0.0 | Retry code until it succeeds
+[termcolor](https://pypi.org/project/termcolor) | 2.5.0 | ANSI color formatting for output in terminal
+[terminado](https://pypi.org/project/terminado) | 0.18.1 | Tornado websocket backend for the Xterm.js Javascript terminal emulator library.
+[text-unidecode](https://pypi.org/project/text-unidecode) | 1.3 | The most basic Text::Unidecode port
+[textdistance](https://pypi.org/project/textdistance) | 4.6.3 | Compute distance between the two texts.
+[thefuzz](https://pypi.org/project/thefuzz) | 0.22.1 | Fuzzy string matching in python
+[threadpoolctl](https://pypi.org/project/threadpoolctl) | 3.5.0 | threadpoolctl
+[three-merge](https://pypi.org/project/three-merge) | 0.1.1 | Simple library for merging two strings with respect to a base one
+[tifffile](https://pypi.org/project/tifffile) | 2025.1.10 | Read and write TIFF files
+[tiktoken](https://pypi.org/project/tiktoken) | 0.8.0 | tiktoken is a fast BPE tokeniser for use with OpenAI's models
+[tinycss2](https://pypi.org/project/tinycss2) | 1.4.0 | A tiny CSS parser
+[tokenizers](https://pypi.org/project/tokenizers) | 0.21.0 |
+[toml](https://pypi.org/project/toml) | 0.10.2 | Python Library for Tom's Obvious, Minimal Language
+[tomli](https://pypi.org/project/tomli) | 2.2.1 | A lil' TOML parser
+[tomli-w](https://pypi.org/project/tomli-w) | 1.2.0 | A lil' TOML writer
+[tomlkit](https://pypi.org/project/tomlkit) | 0.13.2 | Style preserving TOML library
+[toolz](https://pypi.org/project/toolz) | 1.0.0 | List processing tools and functional utilities
+[tornado](https://pypi.org/project/tornado) | 6.4.2 | Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.
+[tqdm](https://pypi.org/project/tqdm) | 4.66.4 | Fast, Extensible Progress Meter
+[traitlets](https://pypi.org/project/traitlets) | 5.14.1 | Traitlets Python configuration system
+[traittypes](https://pypi.org/project/traittypes) | 0.2.1 | Scipy trait types
+[trio](https://pypi.org/project/trio) | 0.29.0 | A friendly Python library for async concurrency and I/O
+[trove-classifiers](https://pypi.org/project/trove-classifiers) | 2024.10.21.16 | Canonical source for classifiers on PyPI (pypi.org).
+[twine](https://pypi.org/project/twine) | 6.1.0 | Collection of utilities for publishing packages on PyPI
+[typer](https://pypi.org/project/typer) | 0.15.2 | Typer, build great CLIs. Easy to code. Based on Python type hints.
+[types-python-dateutil](https://pypi.org/project/types-python-dateutil) | 2.9.0.20240316 | Typing stubs for python-dateutil
+[types-requests](https://pypi.org/project/types-requests) | 2.32.0.20241016 | Typing stubs for requests
+[typing-extensions](https://pypi.org/project/typing-extensions) | 4.12.2 | Backported and Experimental Type Hints for Python 3.8+
+[typing-inspect](https://pypi.org/project/typing-inspect) | 0.9.0 | Runtime inspection utilities for typing module.
+[tzdata](https://pypi.org/project/tzdata) | 2024.1 | Provider of IANA time zone data
+[tzlocal](https://pypi.org/project/tzlocal) | 5.2 | tzinfo object for the local timezone
+[uc-micro-py](https://pypi.org/project/uc-micro-py) | 1.0.1 | Micro subset of unicode data files for linkify-it-py projects.
+[ujson](https://pypi.org/project/ujson) | 5.10.0 | Ultra fast JSON encoder and decoder for Python
+[umap-learn](https://pypi.org/project/umap-learn) | 0.5.6 | Uniform Manifold Approximation and Projection
+[uncertainties](https://pypi.org/project/uncertainties) | 3.2.2 | calculations with values with uncertainties, error propagation
+[uri-template](https://pypi.org/project/uri-template) | 1.3.0 | RFC 6570 URI Template Processor
+[urllib3](https://pypi.org/project/urllib3) | 2.2.3 | HTTP library with thread-safe connection pooling, file post, and more.
+[uvicorn](https://pypi.org/project/uvicorn) | 0.34.0 | The lightning-fast ASGI server.
+[vega-datasets](https://pypi.org/project/vega-datasets) | 0.9.0 | A Python package for offline access to Vega datasets
+[waitress](https://pypi.org/project/waitress) | 3.0.0 | Waitress WSGI server
+[watchdog](https://pypi.org/project/watchdog) | 6.0.0 | Filesystem events monitoring
+[wcwidth](https://pypi.org/project/wcwidth) | 0.2.13 | Measures the displayed width of unicode strings in a terminal
+[webcolors](https://pypi.org/project/webcolors) | 24.11.1 | A library for working with the color formats defined by HTML and CSS.
+[webencodings](https://pypi.org/project/webencodings) | 0.5.1 | Character encoding aliases for legacy web content
+[websocket-client](https://pypi.org/project/websocket-client) | 1.8.0 | WebSocket client for Python with low level API options
+[werkzeug](https://pypi.org/project/werkzeug) | 3.1.3 | The comprehensive WSGI web application library.
+[whatthepatch](https://pypi.org/project/whatthepatch) | 1.0.7 | A patch parsing and application library.
+[wheel](https://pypi.org/project/wheel) | 0.45.1 | A built-package format for Python
+[widgetsnbextension](https://pypi.org/project/widgetsnbextension) | 4.0.14 | Jupyter interactive widgets for Jupyter Notebook
+[winpython](https://pypi.org/project/winpython) | 15.3.20250425 | WinPython distribution tools, including WPPM
+[wordcloud](https://pypi.org/project/wordcloud) | 1.9.4 | A little word cloud generator
+[wrapt](https://pypi.org/project/wrapt) | 1.16.0 | Module for decorators, wrappers and monkey patching.
+[wsproto](https://pypi.org/project/wsproto) | 1.2.0 | WebSockets state-machine based protocol implementation
+[xarray](https://pypi.org/project/xarray) | 2025.3.0 | N-D labeled arrays and datasets in Python
+[xlsxwriter](https://pypi.org/project/xlsxwriter) | 3.1.9 | A Python module for creating Excel XLSX files.
+[xyzservices](https://pypi.org/project/xyzservices) | 2023.10.1 | Source of XYZ tiles providers
+[yapf](https://pypi.org/project/yapf) | 0.40.1 | A formatter for Python code.
+[yarl](https://pypi.org/project/yarl) | 1.18.3 | Yet another URL library
+[yt-dlp](https://pypi.org/project/yt-dlp) | 2025.2.19 | A feature-rich command-line audio/video downloader
+[zict](https://pypi.org/project/zict) | 3.0.0 | Mutable mapping tools
+[zipp](https://pypi.org/project/zipp) | 3.21.0 | Backport of pathlib-compatible object wrapper for zip files
+[zstandard](https://pypi.org/project/zstandard) | 0.23.0 | Zstandard bindings for Python
+
+
diff --git a/changelogs/WinPythonslim-64bit-3.12.10.0_History.md b/changelogs/WinPythonslim-64bit-3.12.10.0_History.md
new file mode 100644
index 00000000..07147b6d
--- /dev/null
+++ b/changelogs/WinPythonslim-64bit-3.12.10.0_History.md
@@ -0,0 +1,147 @@
+## History of changes for WinPython-64bit 3.12.10.0slim
+
+The following changes were made to WinPython-64bit distribution since version 3.12.9.0slim.
+
+
+
+### Tools
+
+New packages:
+
+ * [Pandoc](https://pandoc.org) 3.1.9 (an universal document converter)
+
+### Python packages
+
+New packages:
+
+ * [asyncssh](https://pypi.org/project/asyncssh) 2.20.0 (AsyncSSH: Asynchronous SSHv2 client and server library)
+ * [deprecated](https://pypi.org/project/deprecated) 1.2.14 (Python @deprecated decorator to deprecate old python classes, functions or methods.)
+ * [flexcache](https://pypi.org/project/flexcache) 0.3 (Saves and loads to the cache a transformed versions of a source object.)
+ * [flexparser](https://pypi.org/project/flexparser) 0.4 (Parsing made fun ... using typing.)
+ * [id](https://pypi.org/project/id) 1.5.0 (A tool for generating OIDC identities)
+ * [pygithub](https://pypi.org/project/pygithub) 2.6.1 (Use the full Github API v3)
+ * [pyuca](https://pypi.org/project/pyuca) 1.2 (a Python implementation of the Unicode Collation Algorithm)
+ * [shellingham](https://pypi.org/project/shellingham) 1.5.4 (Tool to Detect Surrounding Shell)
+ * [skrub](https://pypi.org/project/skrub) 0.5.1 (Prepping tables for machine learning)
+ * [superqt](https://pypi.org/project/superqt) 0.7.1 (Missing widgets and components for PyQt/PySide)
+ * [sv-ttk](https://pypi.org/project/sv-ttk) 2.6.0 (A gorgeous theme for Tkinter, based on Windows 11's UI)
+ * [typer](https://pypi.org/project/typer) 0.15.2 (Typer, build great CLIs. Easy to code. Based on Python type hints.)
+ * [wrapt](https://pypi.org/project/wrapt) 1.16.0 (Module for decorators, wrappers and monkey patching.)
+
+Upgraded packages:
+
+ * [alembic](https://pypi.org/project/alembic) 1.13.1 → 1.15.1 (A database migration tool for SQLAlchemy.)
+ * [anthropic](https://pypi.org/project/anthropic) 0.42.0 → 0.49.0 (The official Python library for the anthropic API)
+ * [anyio](https://pypi.org/project/anyio) 4.7.0 → 4.8.0 (High level compatibility layer for multiple asynchronous event loop implementations)
+ * [array-api-compat](https://pypi.org/project/array-api-compat) 1.10.0 → 1.11.1 (A wrapper around NumPy and other array libraries to make them compatible with the Array API standard)
+ * [azure-core](https://pypi.org/project/azure-core) 1.30.2 → 1.32.0 (Microsoft Azure Core Library for Python)
+ * [azure-cosmos](https://pypi.org/project/azure-cosmos) 4.7.0 → 4.9.0 (Microsoft Azure Cosmos Client Library for Python)
+ * [azure-identity](https://pypi.org/project/azure-identity) 1.16.1 → 1.21.0 (Microsoft Azure Identity Library for Python)
+ * [black](https://pypi.org/project/black) 24.10.0 → 25.1.0 (The uncompromising code formatter.)
+ * [bokeh](https://pypi.org/project/bokeh) 3.6.3 → 3.7.2 (Interactive plots and applications in the browser from Python)
+ * [cachetools](https://pypi.org/project/cachetools) 5.4.0 → 5.5.2 (Extensible memoizing collections and decorators)
+ * [certifi](https://pypi.org/project/certifi) 2024.6.2 → 2025.1.31 (Python package for providing Mozilla's CA Bundle.)
+ * [click](https://pypi.org/project/click) 8.1.7 → 8.1.8 (Composable command line interface toolkit)
+ * [cloudpickle](https://pypi.org/project/cloudpickle) 3.0.0 → 3.1.1 (Pickler class to extend the standard pickle.Pickler functionality)
+ * [cvxpy](https://pypi.org/project/cvxpy) 1.6.0 → 1.6.4 (A domain-specific language for modeling convex optimization problems in Python.)
+ * [cython](https://pypi.org/project/cython) 3.0.11 → 3.0.12 (The Cython compiler for writing C extensions in the Python language.)
+ * [dask](https://pypi.org/project/dask) 2024.12.1 → 2025.3.0 (Parallel PyData with Task Scheduling)
+ * [datasette](https://pypi.org/project/datasette) 0.64.8 → 0.65.1 (An open source multi-tool for exploring and publishing data)
+ * [datashader](https://pypi.org/project/datashader) 0.16.3 → 0.17.0 (Data visualization toolchain based on aggregating into a grid)
+ * [diff-match-patch](https://pypi.org/project/diff-match-patch) 20230430 → 20241021 (Repackaging of Google's Diff Match and Patch libraries.)
+ * [distributed](https://pypi.org/project/distributed) 2024.12.1 → 2025.3.0 (Distributed scheduler for Dask)
+ * [docstring-to-markdown](https://pypi.org/project/docstring-to-markdown) 0.13 → 0.15 (On the fly conversion of Python docstrings to markdown)
+ * [duckdb](https://pypi.org/project/duckdb) 1.2.0 → 1.2.2 (DuckDB in-process database)
+ * [faker](https://pypi.org/project/faker) 33.3.1 → 36.1.1 (Faker is a Python package that generates fake data for you.)
+ * [fastapi](https://pypi.org/project/fastapi) 0.115.6 → 0.115.8 (FastAPI framework, high performance, easy to learn, fast to code, ready for production)
+ * [filelock](https://pypi.org/project/filelock) 3.14.0 → 3.17.0 (A platform independent file lock.)
+ * [folium](https://pypi.org/project/folium) 0.18.0 → 0.19.5 (Make beautiful maps with Leaflet.js & Python)
+ * [holoviews](https://pypi.org/project/holoviews) 1.20.0 → 1.20.2 (A high-level plotting API for the PyData ecosystem built on HoloViews.)
+ * [hpack](https://pypi.org/project/hpack) 4.0.0 → 4.1.0 (Pure-Python HPACK header encoding)
+ * [huggingface-hub](https://pypi.org/project/huggingface-hub) 0.28.1 → 0.29.3 (Client library to download and publish models, datasets and other repos on the huggingface.co hub)
+ * [hypercorn](https://pypi.org/project/hypercorn) 0.16.0 → 0.17.3 (A ASGI Server based on Hyper libraries and inspired by Gunicorn)
+ * [hyperframe](https://pypi.org/project/hyperframe) 6.0.1 → 6.1.0 (Pure-Python HTTP/2 framing)
+ * [hypothesis](https://pypi.org/project/hypothesis) 6.122.3 → 6.130.4 (A library for property-based testing)
+ * [idna](https://pypi.org/project/idna) 3.7 → 3.10 (Internationalized Domain Names in Applications (IDNA))
+ * [imageio](https://pypi.org/project/imageio) 2.33.1 → 2.37.0 (Library for reading and writing a wide range of image, video, scientific, and volumetric data formats.)
+ * [importlib-metadata](https://pypi.org/project/importlib-metadata) 7.1.0 → 8.6.1 (Read metadata from Python packages)
+ * [ipympl](https://pypi.org/project/ipympl) 0.9.6 → 0.9.7 (Matplotlib Jupyter Extension)
+ * [ipython](https://pypi.org/project/ipython) 8.32.0 → 8.34.0 (IPython: Productive Interactive Computing)
+ * [ipywidgets](https://pypi.org/project/ipywidgets) 8.1.5 → 8.1.6 (Jupyter interactive widgets)
+ * [jupyter-client](https://pypi.org/project/jupyter-client) 8.6.2 → 8.6.3 (Jupyter protocol implementation and client libraries)
+ * [jupyter-events](https://pypi.org/project/jupyter-events) 0.10.0 → 0.12.0 (Jupyter Event System library)
+ * [jupyterlab](https://pypi.org/project/jupyterlab) 4.3.5 → 4.4.1 (JupyterLab computational environment)
+ * [jupyterlab-widgets](https://pypi.org/project/jupyterlab-widgets) 3.0.13 → 3.0.14 (Jupyter interactive widgets for JupyterLab)
+ * [keras](https://pypi.org/project/keras) 3.8.0 → 3.9.2 (Multi-backend Keras)
+ * [langchain](https://pypi.org/project/langchain) 0.3.18 → 0.3.23 (Building applications with LLMs through composability)
+ * [langchain-core](https://pypi.org/project/langchain-core) 0.3.34 → 0.3.51 (Building applications with LLMs through composability)
+ * [langchain-text-splitters](https://pypi.org/project/langchain-text-splitters) 0.3.6 → 0.3.8 (LangChain text splitting utilities)
+ * [langsmith](https://pypi.org/project/langsmith) 0.2.11 → 0.3.24 (Client library to connect to the LangSmith LLM Tracing and Evaluation Platform.)
+ * [markdown](https://pypi.org/project/markdown) 3.5.1 → 3.7 (Python implementation of John Gruber's Markdown.)
+ * [matplotlib](https://pypi.org/project/matplotlib) 3.10.0 → 3.10.1 (Python plotting package)
+ * [mypy](https://pypi.org/project/mypy) 1.14.0 → 1.15.0 (Optional static typing for Python)
+ * [mysql-connector-python](https://pypi.org/project/mysql-connector-python) 8.0.21 → 9.2.0 (A self-contained Python driver for communicating with MySQL servers, using an API that is compliant with the Python Database API Specification v)
+ * [narwhals](https://pypi.org/project/narwhals) 1.21.1 → 1.30.0 (Extremely lightweight compatibility layer between dataframe libraries)
+ * [notebook](https://pypi.org/project/notebook) 7.3.1 → 7.4.0 (Jupyter Notebook - A web-based notebook environment for interactive computing)
+ * [numba](https://pypi.org/project/numba) 0.61.0 → 0.61.2 (compiling Python code using LLVM)
+ * [numpy](https://pypi.org/project/numpy) 2.1.3 → 2.2.4 (Fundamental package for array computing in Python)
+ * [openai](https://pypi.org/project/openai) 1.61.1 → 1.72.0 (The official Python library for the openai API)
+ * [opencv-python](https://pypi.org/project/opencv-python) 4.10.0.84 → 4.11.0.86 (Wrapper package for OpenCV python bindings.)
+ * [optree](https://pypi.org/project/optree) 0.13.1 → 0.14.0 (Optimized PyTree Utilities.)
+ * [panel](https://pypi.org/project/panel) 1.6.0 → 1.6.2 (The powerful data exploration & web app framework for Python.)
+ * [param](https://pypi.org/project/param) 2.1.1 → 2.2.0 (Make your Python code clearer and more reliable by declaring Parameters.)
+ * [pip](https://pypi.org/project/pip) 24.3.1 → 25.0.1 (The PyPA recommended tool for installing Python packages.)
+ * [platformdirs](https://pypi.org/project/platformdirs) 4.2.2 → 4.3.6 (A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`.)
+ * [plotly](https://pypi.org/project/plotly) 5.24.1 → 6.0.1 (An open-source interactive data visualization library for Python)
+ * [polars](https://pypi.org/project/polars) 1.22.0 → 1.27.1 (Blazingly fast DataFrame library)
+ * [prometheus-client](https://pypi.org/project/prometheus-client) 0.18.0 → 0.21.1 (Python client for the Prometheus monitoring system.)
+ * [prompt-toolkit](https://pypi.org/project/prompt-toolkit) 3.0.48 → 3.0.50 (Library for building powerful interactive command lines in Python)
+ * [pyarrow](https://pypi.org/project/pyarrow) 19.0.0 → 19.0.1 (Python library for Apache Arrow)
+ * [pyasn1](https://pypi.org/project/pyasn1) 0.4.8 → 0.6.1 (Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208))
+ * [pyasn1-modules](https://pypi.org/project/pyasn1-modules) 0.2.8 → 0.4.1 (A collection of ASN.1-based protocols modules)
+ * [pyjwt](https://pypi.org/project/pyjwt) 2.8.0 → 2.10.1 (JSON Web Token implementation in Python)
+ * [pympler](https://pypi.org/project/pympler) 1.0.1 → 1.1 (A development tool to measure, monitor and analyze the memory behavior of Python objects.)
+ * [pyomo](https://pypi.org/project/pyomo) 6.8.2 → 6.9.1 (Pyomo: Python Optimization Modeling Objects)
+ * [pypandoc](https://pypi.org/project/pypandoc) 1.5 → 1.15 (Thin wrapper for pandoc.)
+ * [pytest](https://pypi.org/project/pytest) 8.2.2 → 8.3.4 (pytest: simple powerful testing with Python)
+ * [Python](http://www.python.org/) 3.12.9 → 3.12.10 (Python programming language with standard library)
+ * [pytz](https://pypi.org/project/pytz) 2024.1 → 2024.2 (World timezone definitions, modern and historical)
+ * [pyzmq](https://pypi.org/project/pyzmq) 26.2.0 → 26.2.1 (Python bindings for 0MQ)
+ * [qtawesome](https://pypi.org/project/qtawesome) 1.3.1 → 1.4.0 (FontAwesome icons in PyQt and PySide applications)
+ * [qtconsole](https://pypi.org/project/qtconsole) 5.5.2 → 5.6.1 (Jupyter Qt console)
+ * [quart](https://pypi.org/project/quart) 0.19.4 → 0.20.0 (A Python ASGI web framework with the same API as Flask)
+ * [rtree](https://pypi.org/project/rtree) 1.1.0 → 1.3.0 (R-Tree spatial index for Python GIS)
+ * [rx](https://pypi.org/project/rx) 3.1.1 → 3.2.0 (Reactive Extensions (Rx) for Python)
+ * [scikit-image](https://pypi.org/project/scikit-image) 0.25.0 → 0.25.2 (Image processing in Python)
+ * [scipy](https://pypi.org/project/scipy) 1.15.1 → 1.15.2 (Fundamental algorithms for scientific computing in Python)
+ * [send2trash](https://pypi.org/project/send2trash) 1.8.2 → 1.8.3 (Send file to trash natively under Mac OS X, Windows and Linux)
+ * [setuptools](https://pypi.org/project/setuptools) 75.6.0 → 75.8.2 (Easily download, build, install, upgrade, and uninstall Python packages)
+ * [simpy](https://pypi.org/project/simpy) 4.0.1 → 4.1.1 (Event discrete, process based simulation for Python.)
+ * [spyder](https://pypi.org/project/spyder) 5.5.6 → 6.0.5 (The Scientific Python Development Environment)
+ * [spyder-kernels](https://pypi.org/project/spyder-kernels) 2.5.2 → 3.0.3 (Jupyter kernels for Spyder's console)
+ * [sqlalchemy](https://pypi.org/project/sqlalchemy) 2.0.35 → 2.0.38 (Database Abstraction Library)
+ * [starlette](https://pypi.org/project/starlette) 0.41.3 → 0.45.3 (The little ASGI library that shines.)
+ * [streamlit](https://pypi.org/project/streamlit) 1.41.1 → 1.44.0 (A faster way to build and share data apps)
+ * [tomli-w](https://pypi.org/project/tomli-w) 1.1.0 → 1.2.0 (A lil' TOML writer)
+ * [trio](https://pypi.org/project/trio) 0.28.0 → 0.29.0 (A friendly Python library for async concurrency and I/O)
+ * [twine](https://pypi.org/project/twine) 6.0.1 → 6.1.0 (Collection of utilities for publishing packages on PyPI)
+ * [widgetsnbextension](https://pypi.org/project/widgetsnbextension) 4.0.13 → 4.0.14 (Jupyter interactive widgets for Jupyter Notebook)
+ * [winpython](https://pypi.org/project/winpython) 13.1.20250222 → 15.3.20250425 (WinPython distribution tools, including WPPM)
+ * [xarray](https://pypi.org/project/xarray) 2025.1.1 → 2025.3.0 (N-D labeled arrays and datasets in Python)
+ * [yt-dlp](https://pypi.org/project/yt-dlp) 2023.7.6 → 2025.2.19 (A feature-rich command-line audio/video downloader)
+
+Removed packages:
+
+ * [bcrypt](https://pypi.org/project/bcrypt) 4.0.1 (Modern password hashing for your software and your servers)
+ * [dask_expr](https://pypi.org/project/dask_expr) 1.1.21 (High Level Expressions for Dask )
+ * [mutagen](https://pypi.org/project/mutagen) 1.47.0 (read and write audio tags for many formats)
+ * [paramiko](https://pypi.org/project/paramiko) 2.8.0 (SSH2 protocol library)
+ * [pint](https://pypi.org/project/pint) 0.23 (Physical quantities module)
+ * [pkginfo](https://pypi.org/project/pkginfo) 1.11.2 (Query metadata from sdists / bdists / installed packages.)
+ * [pycryptodomex](https://pypi.org/project/pycryptodomex) 3.20.0 (Cryptographic library for Python)
+ * [streamz](https://pypi.org/project/streamz) 0.6.3 (Streams)
+ * [websockets](https://pypi.org/project/websockets) 14.2 (An implementation of the WebSocket Protocol (RFC 6455 & 7692))
+
+
+
+* * *
diff --git a/changelogs/WinPythonslim-64bit-3.13.3.0.md b/changelogs/WinPythonslim-64bit-3.13.3.0.md
new file mode 100644
index 00000000..3cc4c6b7
--- /dev/null
+++ b/changelogs/WinPythonslim-64bit-3.13.3.0.md
@@ -0,0 +1,515 @@
+## WinPython 3.13.3.0slim
+
+The following packages are included in WinPython-64bit v3.13.3.0slim .
+
+
+
+### Tools
+
+Name | Version | Description
+-----|---------|------------
+[Pandoc](https://pandoc.org) | 3.1.9 | an universal document converter
+
+### Python packages
+
+Name | Version | Description
+-----|---------|------------
+[Python](http://www.python.org/) | 3.13.3 | Python programming language with standard library
+[absl-py](https://pypi.org/project/absl-py) | 2.0.0 | Abseil Python Common Libraries, see https://github.com/abseil/abseil-py.
+[adbc-driver-manager](https://pypi.org/project/adbc-driver-manager) | 1.3.0 | A generic entrypoint for ADBC drivers.
+[aiofiles](https://pypi.org/project/aiofiles) | 23.2.1 | File support for asyncio.
+[aiohappyeyeballs](https://pypi.org/project/aiohappyeyeballs) | 2.4.4 | Happy Eyeballs for asyncio
+[aiohttp](https://pypi.org/project/aiohttp) | 3.11.11 | Async http client/server framework (asyncio)
+[aiosignal](https://pypi.org/project/aiosignal) | 1.3.1 | aiosignal: a list of registered asynchronous callbacks
+[aiosqlite](https://pypi.org/project/aiosqlite) | 0.20.0 | asyncio bridge to the standard sqlite3 module
+[alabaster](https://pypi.org/project/alabaster) | 0.7.16 | A light, configurable Sphinx theme
+[alembic](https://pypi.org/project/alembic) | 1.15.1 | A database migration tool for SQLAlchemy.
+[altair](https://pypi.org/project/altair) | 5.5.0 | Vega-Altair: A declarative statistical visualization library for Python.
+[aniso8601](https://pypi.org/project/aniso8601) | 9.0.1 | A library for parsing ISO 8601 strings.
+[annotated-types](https://pypi.org/project/annotated-types) | 0.6.0 | Reusable constraint types to use with typing.Annotated
+[ansicolors](https://pypi.org/project/ansicolors) | 1.1.8 | ANSI colors for Python
+[anthropic](https://pypi.org/project/anthropic) | 0.49.0 | The official Python library for the anthropic API
+[anyio](https://pypi.org/project/anyio) | 4.8.0 | High level compatibility layer for multiple asynchronous event loop implementations
+[anywidget](https://pypi.org/project/anywidget) | 0.9.12 | custom jupyter widgets made easy
+[appdirs](https://pypi.org/project/appdirs) | 1.4.4 | A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir".
+[argon2-cffi](https://pypi.org/project/argon2-cffi) | 23.1.0 | Argon2 for Python
+[argon2-cffi-bindings](https://pypi.org/project/argon2-cffi-bindings) | 21.2.0 | Low-level CFFI bindings for Argon2
+[array-api-compat](https://pypi.org/project/array-api-compat) | 1.11.1 | A wrapper around NumPy and other array libraries to make them compatible with the Array API standard
+[arrow](https://pypi.org/project/arrow) | 1.3.0 | Better dates & times for Python
+[asgi-csrf](https://pypi.org/project/asgi-csrf) | 0.9 | ASGI middleware for protecting against CSRF attacks
+[asgiref](https://pypi.org/project/asgiref) | 3.8.1 | ASGI specs, helper code, and adapters
+[asn1crypto](https://pypi.org/project/asn1crypto) | 1.5.1 | Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12,
+[asteval](https://pypi.org/project/asteval) | 0.9.31 | Safe, minimalistic evaluator of python expression using ast module
+[astroid](https://pypi.org/project/astroid) | 3.1.0 | An abstract syntax tree for Python with inference support.
+[astropy](https://pypi.org/project/astropy) | 6.1.6 | Astronomy and astrophysics core library
+[astropy-iers-data](https://pypi.org/project/astropy-iers-data) | 0.2024.12.23.0.33.24 | IERS Earth Rotation and Leap Second tables for the astropy core package
+[asttokens](https://pypi.org/project/asttokens) | 2.4.1 | Annotate AST trees with source code positions
+[async-lru](https://pypi.org/project/async-lru) | 2.0.4 | Simple LRU cache for asyncio
+[asyncssh](https://pypi.org/project/asyncssh) | 2.20.0 | AsyncSSH: Asynchronous SSHv2 client and server library
+[atomicwrites](https://pypi.org/project/atomicwrites) | 1.4.0 | Atomic file writes.
+[attrs](https://pypi.org/project/attrs) | 23.2.0 | Classes Without Boilerplate
+[autopep8](https://pypi.org/project/autopep8) | 2.0.4 | A tool that automatically formats Python code to conform to the PEP 8 style guide
+[azure-core](https://pypi.org/project/azure-core) | 1.32.0 | Microsoft Azure Core Library for Python
+[azure-cosmos](https://pypi.org/project/azure-cosmos) | 4.9.0 | Microsoft Azure Cosmos Client Library for Python
+[azure-identity](https://pypi.org/project/azure-identity) | 1.21.0 | Microsoft Azure Identity Library for Python
+[babel](https://pypi.org/project/babel) | 2.16.0 | Internationalization utilities
+[baresql](https://pypi.org/project/baresql) | 1.0.0 | playing SQL directly on Python datas
+[beautifulsoup4](https://pypi.org/project/beautifulsoup4) | 4.12.2 | Screen-scraping library
+[binaryornot](https://pypi.org/project/binaryornot) | 0.4.4 | Ultra-lightweight pure Python package to check if a file is binary or text.
+[black](https://pypi.org/project/black) | 25.1.0 | The uncompromising code formatter.
+[bleach](https://pypi.org/project/bleach) | 6.1.0 | An easy safelist-based HTML-sanitizing tool.
+[blinker](https://pypi.org/project/blinker) | 1.9.0 | Fast, simple object-to-object and broadcast signaling
+[bokeh](https://pypi.org/project/bokeh) | 3.7.2 | Interactive plots and applications in the browser from Python
+[branca](https://pypi.org/project/branca) | 0.8.0 | Generate complex HTML+JS pages with Python
+[brotli](https://pypi.org/project/brotli) | 1.1.0 | Python bindings for the Brotli compression library
+[build](https://pypi.org/project/build) | 1.2.2.post1 | A simple, correct Python build frontend
+[cachetools](https://pypi.org/project/cachetools) | 5.5.2 | Extensible memoizing collections and decorators
+[certifi](https://pypi.org/project/certifi) | 2025.1.31 | Python package for providing Mozilla's CA Bundle.
+[cffi](https://pypi.org/project/cffi) | 1.17.1 | Foreign Function Interface for Python calling C code.
+[chardet](https://pypi.org/project/chardet) | 5.2.0 | Universal encoding detector for Python 3
+[charset-normalizer](https://pypi.org/project/charset-normalizer) | 3.4.0 | The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet.
+[clarabel](https://pypi.org/project/clarabel) | 0.10.0 | Clarabel Conic Interior Point Solver for Rust / Python
+[click](https://pypi.org/project/click) | 8.1.8 | Composable command line interface toolkit
+[click-default-group](https://pypi.org/project/click-default-group) | 1.2.4 | click_default_group
+[cloudpickle](https://pypi.org/project/cloudpickle) | 3.1.1 | Pickler class to extend the standard pickle.Pickler functionality
+[cohere](https://pypi.org/project/cohere) | 5.13.12 |
+[colorama](https://pypi.org/project/colorama) | 0.4.6 | Cross-platform colored terminal text.
+[colorcet](https://pypi.org/project/colorcet) | 3.1.0 | Collection of perceptually uniform colormaps
+[colorlog](https://pypi.org/project/colorlog) | 6.8.2 | Add colours to the output of Python's logging module.
+[comm](https://pypi.org/project/comm) | 0.2.2 | Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc.
+[contourpy](https://pypi.org/project/contourpy) | 1.3.1 | Python library for calculating contours of 2D quadrilateral grids
+[cookiecutter](https://pypi.org/project/cookiecutter) | 2.6.0 | A command-line utility that creates projects from project templates, e.g.
+[cryptography](https://pypi.org/project/cryptography) | 44.0.0 | cryptography is a package which provides cryptographic recipes and primitives to Python developers.
+[cvxopt](https://pypi.org/project/cvxopt) | 1.3.2 | Convex optimization package
+[cvxpy](https://pypi.org/project/cvxpy) | 1.6.4 | A domain-specific language for modeling convex optimization problems in Python.
+[cycler](https://pypi.org/project/cycler) | 0.12.1 | Composable style cycles
+[cython](https://pypi.org/project/cython) | 3.0.12 | The Cython compiler for writing C extensions in the Python language.
+[cytoolz](https://pypi.org/project/cytoolz) | 1.0.1 | Cython implementation of Toolz: High performance functional utilities
+[dask](https://pypi.org/project/dask) | 2025.3.0 | Parallel PyData with Task Scheduling
+[datasette](https://pypi.org/project/datasette) | 0.65.1 | An open source multi-tool for exploring and publishing data
+[datasette-graphql](https://pypi.org/project/datasette-graphql) | 2.2 | Datasette plugin providing an automatic GraphQL API for your SQLite databases
+[datashader](https://pypi.org/project/datashader) | 0.17.0 | Data visualization toolchain based on aggregating into a grid
+[deap](https://pypi.org/project/deap) | 1.4.2 | Distributed Evolutionary Algorithms in Python
+[debugpy](https://pypi.org/project/debugpy) | 1.8.0 | An implementation of the Debug Adapter Protocol for Python
+[decorator](https://pypi.org/project/decorator) | 5.1.1 | Decorators for Humans
+[defusedxml](https://pypi.org/project/defusedxml) | 0.7.1 | XML bomb protection for Python stdlib modules
+[deprecated](https://pypi.org/project/deprecated) | 1.2.14 | Python @deprecated decorator to deprecate old python classes, functions or methods.
+[diff-match-patch](https://pypi.org/project/diff-match-patch) | 20241021 | Repackaging of Google's Diff Match and Patch libraries.
+[dill](https://pypi.org/project/dill) | 0.3.9 | serialize all of Python
+[distributed](https://pypi.org/project/distributed) | 2025.3.0 | Distributed scheduler for Dask
+[distro](https://pypi.org/project/distro) | 1.8.0 | Distro - an OS platform information API
+[django](https://pypi.org/project/django) | 5.0.7 | A high-level Python web framework that encourages rapid development and clean, pragmatic design.
+[dnspython](https://pypi.org/project/dnspython) | 2.6.1 | DNS toolkit
+[docstring-to-markdown](https://pypi.org/project/docstring-to-markdown) | 0.15 | On the fly conversion of Python docstrings to markdown
+[docutils](https://pypi.org/project/docutils) | 0.21.2 | Docutils -- Python Documentation Utilities
+[duckdb](https://pypi.org/project/duckdb) | 1.2.2 | DuckDB in-process database
+[entrypoints](https://pypi.org/project/entrypoints) | 0.4 | Discover and load entry points from installed packages.
+[et-xmlfile](https://pypi.org/project/et-xmlfile) | 1.1.0 | An implementation of lxml.xmlfile for the standard library
+[eval-type-backport](https://pypi.org/project/eval-type-backport) | 0.2.2 | Like `typing._eval_type`, but lets older Python versions use newer typing features.
+[executing](https://pypi.org/project/executing) | 2.2.0 | Get the currently executing AST node of a frame, and other information
+[faker](https://pypi.org/project/faker) | 36.1.1 | Faker is a Python package that generates fake data for you.
+[fast-histogram](https://pypi.org/project/fast-histogram) | 0.14 | Fast simple 1D and 2D histograms
+[fastapi](https://pypi.org/project/fastapi) | 0.115.8 | FastAPI framework, high performance, easy to learn, fast to code, ready for production
+[fastavro](https://pypi.org/project/fastavro) | 1.10.0 | Fast read/write of AVRO files
+[fastjsonschema](https://pypi.org/project/fastjsonschema) | 2.18.0 | Fastest Python implementation of JSON schema
+[filelock](https://pypi.org/project/filelock) | 3.17.0 | A platform independent file lock.
+[flake8](https://pypi.org/project/flake8) | 7.1.1 | the modular source code checker: pep8 pyflakes and co
+[flask](https://pypi.org/project/flask) | 3.1.0 | A simple framework for building complex web applications.
+[flexcache](https://pypi.org/project/flexcache) | 0.3 | Saves and loads to the cache a transformed versions of a source object.
+[flexparser](https://pypi.org/project/flexparser) | 0.4 | Parsing made fun ... using typing.
+[flit](https://pypi.org/project/flit) | 3.10.1 | A simple packaging tool for simple packages.
+[flit-core](https://pypi.org/project/flit-core) | 3.10.1 | Distribution-building parts of Flit. See flit package for more information
+[folium](https://pypi.org/project/folium) | 0.19.5 | Make beautiful maps with Leaflet.js & Python
+[fonttools](https://pypi.org/project/fonttools) | 4.55.3 | Tools to manipulate font files
+[fqdn](https://pypi.org/project/fqdn) | 1.5.1 | Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers
+[frozenlist](https://pypi.org/project/frozenlist) | 1.5.0 | A list-like structure which implements collections.abc.MutableSequence
+[fsspec](https://pypi.org/project/fsspec) | 2024.6.1 | File-system specification
+[fuzzywuzzy](https://pypi.org/project/fuzzywuzzy) | 0.18.0 | Fuzzy string matching in python
+[geographiclib](https://pypi.org/project/geographiclib) | 2.0 | The geodesic routines from GeographicLib
+[geopandas](https://pypi.org/project/geopandas) | 1.0.1 | Geographic pandas extensions
+[geopy](https://pypi.org/project/geopy) | 2.4.1 | Python Geocoding Toolbox
+[gitdb](https://pypi.org/project/gitdb) | 4.0.10 | Git Object Database
+[gitpython](https://pypi.org/project/gitpython) | 3.1.32 | GitPython is a Python library used to interact with Git repositories
+[google-auth](https://pypi.org/project/google-auth) | 2.37.0 | Google Authentication Library
+[graphene](https://pypi.org/project/graphene) | 3.3 | GraphQL Framework for Python
+[graphql-core](https://pypi.org/project/graphql-core) | 3.2.3 | GraphQL implementation for Python, a port of GraphQL.js, the JavaScript reference implementation for GraphQL.
+[graphql-relay](https://pypi.org/project/graphql-relay) | 3.2.0 | Relay library for graphql-core
+[greenlet](https://pypi.org/project/greenlet) | 3.1.1 | Lightweight in-process concurrent programming
+[griffe](https://pypi.org/project/griffe) | 1.5.5 | Signatures for entire Python programs.
+[groq](https://pypi.org/project/groq) | 0.13.1 | The official Python library for the groq API
+[guidata](https://pypi.org/project/guidata) | 3.7.1 | Automatic GUI generation for easy dataset editing and display
+[h11](https://pypi.org/project/h11) | 0.14.0 | A pure-Python, bring-your-own-I/O implementation of HTTP/1.1
+[h2](https://pypi.org/project/h2) | 4.1.0 | HTTP/2 State-Machine based protocol implementation
+[h5py](https://pypi.org/project/h5py) | 3.12.1 | Read and write HDF5 files from Python
+[hatchling](https://pypi.org/project/hatchling) | 1.27.0 | Modern, extensible Python build backend
+[holoviews](https://pypi.org/project/holoviews) | 1.20.2 | A high-level plotting API for the PyData ecosystem built on HoloViews.
+[hpack](https://pypi.org/project/hpack) | 4.1.0 | Pure-Python HPACK header encoding
+[html5lib](https://pypi.org/project/html5lib) | 1.1 | HTML parser based on the WHATWG HTML specification
+[httpcore](https://pypi.org/project/httpcore) | 1.0.5 | A minimal low-level HTTP client.
+[httpie](https://pypi.org/project/httpie) | 3.2.4 | HTTPie: modern, user-friendly command-line HTTP client for the API era.
+[httpx](https://pypi.org/project/httpx) | 0.27.2 | The next generation HTTP client.
+[httpx-sse](https://pypi.org/project/httpx-sse) | 0.4.0 | Consume Server-Sent Event (SSE) messages with HTTPX.
+[huggingface-hub](https://pypi.org/project/huggingface-hub) | 0.29.3 | Client library to download and publish models, datasets and other repos on the huggingface.co hub
+[hupper](https://pypi.org/project/hupper) | 1.12 | Integrated process monitor for developing and reloading daemons.
+[hvplot](https://pypi.org/project/hvplot) | 0.11.2 | A high-level plotting API for the PyData ecosystem built on HoloViews.
+[hypercorn](https://pypi.org/project/hypercorn) | 0.17.3 | A ASGI Server based on Hyper libraries and inspired by Gunicorn
+[hyperframe](https://pypi.org/project/hyperframe) | 6.1.0 | Pure-Python HTTP/2 framing
+[hypothesis](https://pypi.org/project/hypothesis) | 6.130.4 | A library for property-based testing
+[id](https://pypi.org/project/id) | 1.5.0 | A tool for generating OIDC identities
+[idna](https://pypi.org/project/idna) | 3.10 | Internationalized Domain Names in Applications (IDNA)
+[imageio](https://pypi.org/project/imageio) | 2.37.0 | Library for reading and writing a wide range of image, video, scientific, and volumetric data formats.
+[imagesize](https://pypi.org/project/imagesize) | 1.4.1 | Getting image size from png/jpeg/jpeg2000/gif file
+[imbalanced-learn](https://pypi.org/project/imbalanced-learn) | 0.13.0 | Toolbox for imbalanced dataset in machine learning
+[importlib-metadata](https://pypi.org/project/importlib-metadata) | 8.6.1 | Read metadata from Python packages
+[inflection](https://pypi.org/project/inflection) | 0.5.1 | A port of Ruby on Rails inflector to Python
+[iniconfig](https://pypi.org/project/iniconfig) | 2.0.0 | brain-dead simple config-ini parsing
+[intervaltree](https://pypi.org/project/intervaltree) | 3.0.2 | Editable interval tree data structure for Python 2 and 3
+[ipycanvas](https://pypi.org/project/ipycanvas) | 0.13.3 | Interactive widgets library exposing the browser's Canvas API
+[ipykernel](https://pypi.org/project/ipykernel) | 6.29.5 | IPython Kernel for Jupyter
+[ipyleaflet](https://pypi.org/project/ipyleaflet) | 0.19.2 | A Jupyter widget for dynamic Leaflet maps
+[ipympl](https://pypi.org/project/ipympl) | 0.9.7 | Matplotlib Jupyter Extension
+[ipython](https://pypi.org/project/ipython) | 8.34.0 | IPython: Productive Interactive Computing
+[ipython-genutils](https://pypi.org/project/ipython-genutils) | 0.2.0 | Vestigial utilities from IPython
+[ipython-sql](https://pypi.org/project/ipython-sql) | 0.5.0 | RDBMS access via IPython
+[ipywidgets](https://pypi.org/project/ipywidgets) | 8.1.6 | Jupyter interactive widgets
+[isoduration](https://pypi.org/project/isoduration) | 20.11.0 | Operations with ISO 8601 durations
+[isort](https://pypi.org/project/isort) | 5.13.2 | A Python utility / library to sort Python imports.
+[itsdangerous](https://pypi.org/project/itsdangerous) | 2.2.0 | Safely pass data to untrusted environments and back.
+[janus](https://pypi.org/project/janus) | 2.0.0 | Mixed sync-async queue to interoperate between asyncio tasks and classic threads
+[jaraco-classes](https://pypi.org/project/jaraco-classes) | 3.4.0 | Utility functions for Python class constructs
+[jaraco-context](https://pypi.org/project/jaraco-context) | 6.0.1 | Useful decorators and context managers
+[jaraco-functools](https://pypi.org/project/jaraco-functools) | 4.1.0 | Functools like those found in stdlib
+[jedi](https://pypi.org/project/jedi) | 0.19.2 | An autocompletion tool for Python that can be used for text editors.
+[jellyfish](https://pypi.org/project/jellyfish) | 1.1.3 | Approximate and phonetic matching of strings.
+[jinja2](https://pypi.org/project/jinja2) | 3.1.2 | A very fast and expressive template engine.
+[jiter](https://pypi.org/project/jiter) | 0.8.2 | Fast iterable JSON parser.
+[joblib](https://pypi.org/project/joblib) | 1.4.2 | Lightweight pipelining with Python functions
+[json5](https://pypi.org/project/json5) | 0.9.14 | A Python implementation of the JSON5 data format.
+[jsonpatch](https://pypi.org/project/jsonpatch) | 1.33 | Apply JSON-Patches (RFC 6902)
+[jsonpath-python](https://pypi.org/project/jsonpath-python) | 1.0.6 | A more powerful JSONPath implementation in modern python
+[jsonpointer](https://pypi.org/project/jsonpointer) | 2.4 | Identify specific nodes in a JSON document (RFC 6901)
+[jsonschema](https://pypi.org/project/jsonschema) | 4.19.2 | An implementation of JSON Schema validation for Python
+[jsonschema-specifications](https://pypi.org/project/jsonschema-specifications) | 2023.12.1 | The JSON Schema meta-schemas and vocabularies, exposed as a Registry
+[julia](https://pypi.org/project/julia) | 0.6.2 | Julia/Python bridge with IPython support.
+[jupyter](https://pypi.org/project/jupyter) | 1.1.1 | Jupyter metapackage. Install all the Jupyter components in one go.
+[jupyter-bokeh](https://pypi.org/project/jupyter-bokeh) | 4.0.5 | A Jupyter extension for rendering Bokeh content.
+[jupyter-client](https://pypi.org/project/jupyter-client) | 8.6.3 | Jupyter protocol implementation and client libraries
+[jupyter-console](https://pypi.org/project/jupyter-console) | 6.6.3 | Jupyter terminal console
+[jupyter-core](https://pypi.org/project/jupyter-core) | 5.7.2 | Jupyter core package. A base package on which Jupyter projects rely.
+[jupyter-events](https://pypi.org/project/jupyter-events) | 0.12.0 | Jupyter Event System library
+[jupyter-leaflet](https://pypi.org/project/jupyter-leaflet) | 0.19.2 | ipyleaflet extensions for JupyterLab and Jupyter Notebook
+[jupyter-lsp](https://pypi.org/project/jupyter-lsp) | 2.2.5 | Multi-Language Server WebSocket proxy for Jupyter Notebook/Lab server
+[jupyter-server](https://pypi.org/project/jupyter-server) | 2.14.2 | The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications.
+[jupyter-server-terminals](https://pypi.org/project/jupyter-server-terminals) | 0.5.3 | A Jupyter Server Extension Providing Terminals.
+[jupyterlab](https://pypi.org/project/jupyterlab) | 4.4.1 | JupyterLab computational environment
+[jupyterlab-pygments](https://pypi.org/project/jupyterlab-pygments) | 0.3.0 | Pygments theme using JupyterLab CSS variables
+[jupyterlab-server](https://pypi.org/project/jupyterlab-server) | 2.27.3 | A set of server components for JupyterLab and JupyterLab like applications.
+[jupyterlab-widgets](https://pypi.org/project/jupyterlab-widgets) | 3.0.14 | Jupyter interactive widgets for JupyterLab
+[keras](https://pypi.org/project/keras) | 3.9.2 | Multi-backend Keras
+[keyring](https://pypi.org/project/keyring) | 25.6.0 | Store and access your passwords safely.
+[kiwisolver](https://pypi.org/project/kiwisolver) | 1.4.8 | A fast implementation of the Cassowary constraint solver
+[langchain](https://pypi.org/project/langchain) | 0.3.23 | Building applications with LLMs through composability
+[langchain-core](https://pypi.org/project/langchain-core) | 0.3.51 | Building applications with LLMs through composability
+[langchain-text-splitters](https://pypi.org/project/langchain-text-splitters) | 0.3.8 | LangChain text splitting utilities
+[langsmith](https://pypi.org/project/langsmith) | 0.3.24 | Client library to connect to the LangSmith LLM Tracing and Evaluation Platform.
+[lazy-loader](https://pypi.org/project/lazy-loader) | 0.4 | Makes it easy to load subpackages and functions on demand.
+[linkify-it-py](https://pypi.org/project/linkify-it-py) | 2.0.2 | Links recognition library with FULL unicode support.
+[llvmlite](https://pypi.org/project/llvmlite) | 0.44.0 | lightweight wrapper around basic LLVM functionality
+[lmfit](https://pypi.org/project/lmfit) | 1.3.1 | Least-Squares Minimization with Bounds and Constraints
+[locket](https://pypi.org/project/locket) | 1.0.0 | File-based locks for Python on Linux and Windows
+[logfire-api](https://pypi.org/project/logfire-api) | 3.5.3 | Shim for the Logfire SDK which does nothing unless Logfire is installed
+[lxml](https://pypi.org/project/lxml) | 5.3.0 | Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
+[mako](https://pypi.org/project/mako) | 1.3.5 | A super-fast templating language that borrows the best ideas from the existing templating languages.
+[markdown](https://pypi.org/project/markdown) | 3.7 | Python implementation of John Gruber's Markdown.
+[markdown-it-py](https://pypi.org/project/markdown-it-py) | 2.2.0 | Python port of markdown-it. Markdown parsing, done right!
+[markupsafe](https://pypi.org/project/markupsafe) | 3.0.2 | Safely add untrusted strings to HTML/XML markup.
+[matplotlib](https://pypi.org/project/matplotlib) | 3.10.1 | Python plotting package
+[matplotlib-inline](https://pypi.org/project/matplotlib-inline) | 0.1.7 | Inline Matplotlib backend for Jupyter
+[maturin](https://pypi.org/project/maturin) | 1.8.1 | Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages
+[mccabe](https://pypi.org/project/mccabe) | 0.7.0 | McCabe checker, plugin for flake8
+[mdit-py-plugins](https://pypi.org/project/mdit-py-plugins) | 0.3.5 | Collection of plugins for markdown-it-py
+[mdurl](https://pypi.org/project/mdurl) | 0.1.2 | Markdown URL utilities
+[mercantile](https://pypi.org/project/mercantile) | 1.2.1 | Web mercator XYZ tile utilities
+[mergedeep](https://pypi.org/project/mergedeep) | 1.3.4 | A deep merge function for 🐍.
+[missingno](https://pypi.org/project/missingno) | 0.5.1 | Missing data visualization module for Python.
+[mistralai](https://pypi.org/project/mistralai) | 1.2.5 | Python Client SDK for the Mistral AI API.
+[mistune](https://pypi.org/project/mistune) | 2.0.5 | A sane Markdown parser with useful plugins and renderers
+[mizani](https://pypi.org/project/mizani) | 0.11.4 | Scales for Python
+[ml-dtypes](https://pypi.org/project/ml-dtypes) | 0.5.0 |
+[mlxtend](https://pypi.org/project/mlxtend) | 0.23.3 | Machine Learning Library Extensions
+[more-itertools](https://pypi.org/project/more-itertools) | 10.2.0 | More routines for operating on iterables, beyond itertools
+[mpl-scatter-density](https://pypi.org/project/mpl-scatter-density) | 0.7 | Matplotlib helpers to make density scatter plots
+[mpld3](https://pypi.org/project/mpld3) | 0.5.8 | D3 Viewer for Matplotlib
+[mpmath](https://pypi.org/project/mpmath) | 1.3.0 | Python library for arbitrary-precision floating-point arithmetic
+[msal](https://pypi.org/project/msal) | 1.30.0 | The Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of us
+[msal-extensions](https://pypi.org/project/msal-extensions) | 1.2.0 | Microsoft Authentication Library extensions (MSAL EX) provides a persistence API that can save your data on disk, encrypted on Windows, macOS an
+[msgpack](https://pypi.org/project/msgpack) | 1.1.0 | MessagePack serializer
+[multidict](https://pypi.org/project/multidict) | 6.1.0 | multidict implementation
+[multipledispatch](https://pypi.org/project/multipledispatch) | 1.0.0 | Multiple dispatch
+[mypy](https://pypi.org/project/mypy) | 1.15.0 | Optional static typing for Python
+[mypy-extensions](https://pypi.org/project/mypy-extensions) | 1.0.0 | Type system extensions for programs checked with the mypy type checker.
+[mysql-connector-python](https://pypi.org/project/mysql-connector-python) | 9.2.0 | A self-contained Python driver for communicating with MySQL servers, using an API that is compliant with the Python Database API Specification v
+[namex](https://pypi.org/project/namex) | 0.0.8 | A simple utility to separate the implementation of your Python package and its public API surface.
+[narwhals](https://pypi.org/project/narwhals) | 1.30.0 | Extremely lightweight compatibility layer between dataframe libraries
+[nbclient](https://pypi.org/project/nbclient) | 0.10.0 | A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor.
+[nbconvert](https://pypi.org/project/nbconvert) | 7.16.1 | Converting Jupyter Notebooks (.ipynb files) to other formats. Output formats include asciidoc, html, latex, markdown, pdf, py, rst, script.
+[nbformat](https://pypi.org/project/nbformat) | 5.10.4 | The Jupyter Notebook format
+[nest-asyncio](https://pypi.org/project/nest-asyncio) | 1.6.0 | Patch asyncio to allow nested event loops
+[networkx](https://pypi.org/project/networkx) | 3.4.2 | Python package for creating and manipulating graphs and networks
+[nh3](https://pypi.org/project/nh3) | 0.2.18 | Python bindings to the ammonia HTML sanitization library.
+[nltk](https://pypi.org/project/nltk) | 3.9.1 | Natural Language Toolkit
+[notebook](https://pypi.org/project/notebook) | 7.4.0 | Jupyter Notebook - A web-based notebook environment for interactive computing
+[notebook-shim](https://pypi.org/project/notebook-shim) | 0.2.4 | A shim layer for notebook traits and config
+[numba](https://pypi.org/project/numba) | 0.61.2 | compiling Python code using LLVM
+[numpy](https://pypi.org/project/numpy) | 2.2.4 | Fundamental package for array computing in Python
+[numpydoc](https://pypi.org/project/numpydoc) | 1.6.0 | Sphinx extension to support docstrings in Numpy format
+[openai](https://pypi.org/project/openai) | 1.72.0 | The official Python library for the openai API
+[opencv-python](https://pypi.org/project/opencv-python) | 4.11.0.86 | Wrapper package for OpenCV python bindings.
+[openpyxl](https://pypi.org/project/openpyxl) | 3.1.2 | A Python library to read/write Excel 2010 xlsx/xlsm files
+[optree](https://pypi.org/project/optree) | 0.14.0 | Optimized PyTree Utilities.
+[optuna](https://pypi.org/project/optuna) | 3.6.1 | A hyperparameter optimization framework
+[orjson](https://pypi.org/project/orjson) | 3.10.12 | Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
+[osqp](https://pypi.org/project/osqp) | 0.6.7.post3 | OSQP: The Operator Splitting QP Solver
+[outcome](https://pypi.org/project/outcome) | 1.3.0.post0 | Capture the outcome of Python function calls.
+[overrides](https://pypi.org/project/overrides) | 7.7.0 | A decorator to automatically detect mismatch when overriding a method.
+[packaging](https://pypi.org/project/packaging) | 24.2 | Core utilities for Python packages
+[pandas](https://pypi.org/project/pandas) | 2.2.3 | Powerful data structures for data analysis, time series, and statistics
+[pandocfilters](https://pypi.org/project/pandocfilters) | 1.5.0 | Utilities for writing pandoc filters in python
+[panel](https://pypi.org/project/panel) | 1.6.2 | The powerful data exploration & web app framework for Python.
+[papermill](https://pypi.org/project/papermill) | 2.6.0 | Parameterize and run Jupyter and nteract Notebooks
+[param](https://pypi.org/project/param) | 2.2.0 | Make your Python code clearer and more reliable by declaring Parameters.
+[parso](https://pypi.org/project/parso) | 0.8.4 | A Python Parser
+[partd](https://pypi.org/project/partd) | 1.4.0 | Appendable key-value storage
+[pathspec](https://pypi.org/project/pathspec) | 0.11.0 | Utility library for gitignore style pattern matching of file paths.
+[patsy](https://pypi.org/project/patsy) | 0.5.6 | A Python package for describing statistical models and for building design matrices.
+[pep8](https://pypi.org/project/pep8) | 1.7.1 | Python style guide checker
+[pexpect](https://pypi.org/project/pexpect) | 4.8.0 | Pexpect allows easy control of interactive console applications.
+[pg8000](https://pypi.org/project/pg8000) | 1.23.0 | PostgreSQL interface library
+[pickleshare](https://pypi.org/project/pickleshare) | 0.7.5 | Tiny 'shelve'-like database with concurrency support
+[pillow](https://pypi.org/project/pillow) | 11.1.0 | Python Imaging Library (Fork)
+[pip](https://pypi.org/project/pip) | 25.0.1 | The PyPA recommended tool for installing Python packages.
+[platformdirs](https://pypi.org/project/platformdirs) | 4.3.6 | A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`.
+[plotly](https://pypi.org/project/plotly) | 6.0.1 | An open-source interactive data visualization library for Python
+[plotnine](https://pypi.org/project/plotnine) | 0.13.6 | A Grammar of Graphics for Python
+[plotpy](https://pypi.org/project/plotpy) | 2.7.2 | Curve and image plotting tools for Python/Qt applications
+[pluggy](https://pypi.org/project/pluggy) | 1.5.0 | plugin and hook calling mechanisms for python
+[ply](https://pypi.org/project/ply) | 3.11 | Python Lex & Yacc
+[polars](https://pypi.org/project/polars) | 1.27.1 | Blazingly fast DataFrame library
+[portalocker](https://pypi.org/project/portalocker) | 2.7.0 | Wraps the portalocker recipe for easy usage
+[prettytable](https://pypi.org/project/prettytable) | 3.3.0 | A simple Python library for easily displaying tabular data in a visually appealing ASCII table format
+[prince](https://pypi.org/project/prince) | 0.15.0 | Factor analysis in Python: PCA, CA, MCA, MFA, FAMD, GPA
+[priority](https://pypi.org/project/priority) | 2.0.0 | A pure-Python implementation of the HTTP/2 priority tree
+[prometheus-client](https://pypi.org/project/prometheus-client) | 0.21.1 | Python client for the Prometheus monitoring system.
+[prompt-toolkit](https://pypi.org/project/prompt-toolkit) | 3.0.50 | Library for building powerful interactive command lines in Python
+[propcache](https://pypi.org/project/propcache) | 0.2.1 | Accelerated property cache
+[protobuf](https://pypi.org/project/protobuf) | 5.27.3 |
+[psutil](https://pypi.org/project/psutil) | 5.9.8 | Cross-platform lib for process and system monitoring in Python.
+[psygnal](https://pypi.org/project/psygnal) | 0.11.1 | Fast python callback/event system modeled after Qt Signals
+[ptpython](https://pypi.org/project/ptpython) | 3.0.29 | Python REPL build on top of prompt_toolkit
+[ptyprocess](https://pypi.org/project/ptyprocess) | 0.7.0 | Run a subprocess in a pseudo terminal
+[pure-eval](https://pypi.org/project/pure-eval) | 0.2.2 | Safely evaluate AST nodes without side effects
+[pyarrow](https://pypi.org/project/pyarrow) | 19.0.1 | Python library for Apache Arrow
+[pyasn1](https://pypi.org/project/pyasn1) | 0.6.1 | Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)
+[pyasn1-modules](https://pypi.org/project/pyasn1-modules) | 0.4.1 | A collection of ASN.1-based protocols modules
+[pybind11](https://pypi.org/project/pybind11) | 2.13.6 | Seamless operability between C++11 and Python
+[pycodestyle](https://pypi.org/project/pycodestyle) | 2.12.0 | Python style guide checker
+[pycparser](https://pypi.org/project/pycparser) | 2.22 | C parser in Python
+[pyct](https://pypi.org/project/pyct) | 0.5.0 | Python package common tasks for users (e.g. copy examples, fetch data, ...)
+[pydantic](https://pypi.org/project/pydantic) | 2.10.6 | Data validation using Python type hints
+[pydantic-ai](https://pypi.org/project/pydantic-ai) | 0.0.24 | Agent Framework / shim to use Pydantic with LLMs
+[pydantic-ai-slim](https://pypi.org/project/pydantic-ai-slim) | 0.0.24 | Agent Framework / shim to use Pydantic with LLMs, slim package
+[pydantic-core](https://pypi.org/project/pydantic-core) | 2.27.2 | Core functionality for Pydantic validation and serialization
+[pydantic-graph](https://pypi.org/project/pydantic-graph) | 0.0.24 | Graph and state machine library
+[pydeck](https://pypi.org/project/pydeck) | 0.9.1 | Widget for deck.gl maps
+[pydocstyle](https://pypi.org/project/pydocstyle) | 6.3.0 | Python docstring style checker
+[pydub](https://pypi.org/project/pydub) | 0.25.1 | Manipulate audio with an simple and easy high level interface
+[pyerfa](https://pypi.org/project/pyerfa) | 2.0.1.4 | Python bindings for ERFA
+[pyflakes](https://pypi.org/project/pyflakes) | 3.2.0 | passive checker of Python programs
+[pygithub](https://pypi.org/project/pygithub) | 2.6.1 | Use the full Github API v3
+[pygments](https://pypi.org/project/pygments) | 2.19.1 | Pygments is a syntax highlighting package written in Python.
+[pyjwt](https://pypi.org/project/pyjwt) | 2.10.1 | JSON Web Token implementation in Python
+[pylint](https://pypi.org/project/pylint) | 3.1.0 | python code static checker
+[pylint-venv](https://pypi.org/project/pylint-venv) | 3.0.3 | pylint-venv provides a Pylint init-hook to use the same Pylint installation with different virtual environments.
+[pyls-spyder](https://pypi.org/project/pyls-spyder) | 0.4.0 | Spyder extensions for the python-lsp-server
+[pymongo](https://pypi.org/project/pymongo) | 4.10.1 | Python driver for MongoDB
+[pympler](https://pypi.org/project/pympler) | 1.1 | A development tool to measure, monitor and analyze the memory behavior of Python objects.
+[pynacl](https://pypi.org/project/pynacl) | 1.5.0 | Python binding to the Networking and Cryptography (NaCl) library
+[pynndescent](https://pypi.org/project/pynndescent) | 0.5.12 | Nearest Neighbor Descent
+[pyodbc](https://pypi.org/project/pyodbc) | 5.2.0 | DB API module for ODBC
+[pyogrio](https://pypi.org/project/pyogrio) | 0.10.0 | Vectorized spatial vector file format I/O using GDAL/OGR
+[pyomo](https://pypi.org/project/pyomo) | 6.9.1 | Pyomo: Python Optimization Modeling Objects
+[pypandoc](https://pypi.org/project/pypandoc) | 1.15 | Thin wrapper for pandoc.
+[pyparsing](https://pypi.org/project/pyparsing) | 3.2.1 | pyparsing module - Classes and methods to define and execute parsing grammars
+[pypdf](https://pypi.org/project/pypdf) | 5.1.0 | A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files
+[pyproj](https://pypi.org/project/pyproj) | 3.7.0 | Python interface to PROJ (cartographic projections and coordinate transformations library)
+[pyproject-hooks](https://pypi.org/project/pyproject-hooks) | 1.1.0 | Wrappers to call pyproject.toml-based build backend hooks.
+[pyqt5](https://pypi.org/project/pyqt5) | 5.15.10 | Python bindings for the Qt cross platform application toolkit
+[pyqt5-qt5](https://pypi.org/project/pyqt5-qt5) | 5.15.2 | The subset of a Qt installation needed by PyQt5.
+[pyqt5-sip](https://pypi.org/project/pyqt5-sip) | 12.16.1 | The sip module support for PyQt5
+[pyqtgraph](https://pypi.org/project/pyqtgraph) | 0.13.7 | Scientific Graphics and GUI Library for Python
+[pyqtwebengine](https://pypi.org/project/pyqtwebengine) | 5.15.6 | Python bindings for the Qt WebEngine framework
+[pyqtwebengine-qt5](https://pypi.org/project/pyqtwebengine-qt5) | 5.15.2 | The subset of a Qt installation needed by PyQtWebEngine.
+[pyserial](https://pypi.org/project/pyserial) | 3.5 | Python Serial Port Extension
+[pysocks](https://pypi.org/project/pysocks) | 1.7.1 | A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information.
+[pyspnego](https://pypi.org/project/pyspnego) | 0.11.2 | Windows Negotiate Authentication Client and Server
+[pytest](https://pypi.org/project/pytest) | 8.3.4 | pytest: simple powerful testing with Python
+[python-barcode](https://pypi.org/project/python-barcode) | 0.15.1 | Create standard barcodes with Python. No external modules needed. (optional Pillow support included).
+[python-dateutil](https://pypi.org/project/python-dateutil) | 2.8.2 | Extensions to the standard Python datetime module
+[python-dotenv](https://pypi.org/project/python-dotenv) | 1.0.1 | Read key-value pairs from a .env file and set them as environment variables
+[python-json-logger](https://pypi.org/project/python-json-logger) | 2.0.7 | A python library adding a json log formatter
+[python-lsp-black](https://pypi.org/project/python-lsp-black) | 2.0.0 | Black plugin for the Python LSP Server
+[python-lsp-jsonrpc](https://pypi.org/project/python-lsp-jsonrpc) | 1.1.2 | JSON RPC 2.0 server library
+[python-lsp-server](https://pypi.org/project/python-lsp-server) | 1.12.0 | Python Language Server for the Language Server Protocol
+[python-multipart](https://pypi.org/project/python-multipart) | 0.0.9 | A streaming multipart parser for Python
+[python-slugify](https://pypi.org/project/python-slugify) | 8.0.4 | A Python slugify application that also handles Unicode
+[pythonqwt](https://pypi.org/project/pythonqwt) | 0.14.4 | Qt plotting widgets for Python
+[pytoolconfig](https://pypi.org/project/pytoolconfig) | 1.3.1 | Python tool configuration
+[pytz](https://pypi.org/project/pytz) | 2024.2 | World timezone definitions, modern and historical
+[pyuca](https://pypi.org/project/pyuca) | 1.2 | a Python implementation of the Unicode Collation Algorithm
+[pyusb](https://pypi.org/project/pyusb) | 1.3.1 | Easy USB access for Python
+[pyviz-comms](https://pypi.org/project/pyviz-comms) | 3.0.3 | A JupyterLab extension for rendering HoloViz content.
+[pywavelets](https://pypi.org/project/pywavelets) | 1.8.0 | PyWavelets, wavelet transform module
+[pywin32](https://pypi.org/project/pywin32) | 308 | Python for Window Extensions
+[pywin32-ctypes](https://pypi.org/project/pywin32-ctypes) | 0.2.2 | A (partial) reimplementation of pywin32 using ctypes/cffi
+[pywinpty](https://pypi.org/project/pywinpty) | 2.0.14 | Pseudo terminal support for Windows from Python.
+[pyyaml](https://pypi.org/project/pyyaml) | 6.0.2 | YAML parser and emitter for Python
+[pyzmq](https://pypi.org/project/pyzmq) | 26.2.1 | Python bindings for 0MQ
+[qdarkstyle](https://pypi.org/project/qdarkstyle) | 3.2.3 | The most complete dark/light style sheet for C++/Python and Qt applications
+[qdldl](https://pypi.org/project/qdldl) | 0.1.7.post5 | QDLDL, a free LDL factorization routine.
+[qrcode](https://pypi.org/project/qrcode) | 8.0 | QR Code image generator
+[qstylizer](https://pypi.org/project/qstylizer) | 0.2.2 | Stylesheet Generator for PyQt{4-5}/PySide{1-2}
+[qtawesome](https://pypi.org/project/qtawesome) | 1.4.0 | FontAwesome icons in PyQt and PySide applications
+[qtconsole](https://pypi.org/project/qtconsole) | 5.6.1 | Jupyter Qt console
+[qtpy](https://pypi.org/project/qtpy) | 2.4.1 | Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6).
+[quantecon](https://pypi.org/project/quantecon) | 0.7.2 | Import the main names to top level.
+[quart](https://pypi.org/project/quart) | 0.20.0 | A Python ASGI web framework with the same API as Flask
+[rapidfuzz](https://pypi.org/project/rapidfuzz) | 3.9.6 | rapid fuzzy string matching
+[readme-renderer](https://pypi.org/project/readme-renderer) | 44.0 | readme_renderer is a library for rendering readme descriptions for Warehouse
+[redis](https://pypi.org/project/redis) | 5.0.8 | Python client for Redis database and key-value store
+[referencing](https://pypi.org/project/referencing) | 0.35.1 | JSON Referencing + Python
+[regex](https://pypi.org/project/regex) | 2024.11.6 | Alternative regular expression module, to replace re.
+[reportlab](https://pypi.org/project/reportlab) | 4.2.5 | The Reportlab Toolkit
+[requests](https://pypi.org/project/requests) | 2.32.3 | Python HTTP for Humans.
+[requests-ntlm](https://pypi.org/project/requests-ntlm) | 1.3.0 | This package allows for HTTP NTLM authentication using the requests library.
+[requests-toolbelt](https://pypi.org/project/requests-toolbelt) | 1.0.0 | A utility belt for advanced users of python-requests
+[rfc3339-validator](https://pypi.org/project/rfc3339-validator) | 0.1.4 | A pure python RFC3339 validator
+[rfc3986](https://pypi.org/project/rfc3986) | 2.0.0 | Validating URI References per RFC 3986
+[rfc3986-validator](https://pypi.org/project/rfc3986-validator) | 0.1.1 | Pure python rfc3986 validator
+[rich](https://pypi.org/project/rich) | 13.9.4 | Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal
+[rope](https://pypi.org/project/rope) | 1.12.0 | a python refactoring library...
+[rpds-py](https://pypi.org/project/rpds-py) | 0.22.3 | Python bindings to Rust's persistent data structures (rpds)
+[rsa](https://pypi.org/project/rsa) | 4.7.2 | Pure-Python RSA implementation
+[rtree](https://pypi.org/project/rtree) | 1.3.0 | R-Tree spatial index for Python GIS
+[rx](https://pypi.org/project/rx) | 3.2.0 | Reactive Extensions (Rx) for Python
+[scikit-image](https://pypi.org/project/scikit-image) | 0.25.2 | Image processing in Python
+[scikit-learn](https://pypi.org/project/scikit-learn) | 1.6.1 | A set of python modules for machine learning and data mining
+[scipy](https://pypi.org/project/scipy) | 1.15.2 | Fundamental algorithms for scientific computing in Python
+[scramp](https://pypi.org/project/scramp) | 1.4.5 | An implementation of the SCRAM protocol.
+[scs](https://pypi.org/project/scs) | 3.2.7.post2 | Splitting conic solver
+[seaborn](https://pypi.org/project/seaborn) | 0.13.2 | Statistical data visualization
+[send2trash](https://pypi.org/project/send2trash) | 1.8.3 | Send file to trash natively under Mac OS X, Windows and Linux
+[setuptools](https://pypi.org/project/setuptools) | 75.8.2 | Easily download, build, install, upgrade, and uninstall Python packages
+[shapely](https://pypi.org/project/shapely) | 2.0.6 | Manipulation and analysis of geometric objects
+[shellingham](https://pypi.org/project/shellingham) | 1.5.4 | Tool to Detect Surrounding Shell
+[simplejson](https://pypi.org/project/simplejson) | 3.19.3 | Simple, fast, extensible JSON encoder/decoder for Python
+[simpy](https://pypi.org/project/simpy) | 4.1.1 | Event discrete, process based simulation for Python.
+[six](https://pypi.org/project/six) | 1.16.0 | Python 2 and 3 compatibility utilities
+[sklearn-compat](https://pypi.org/project/sklearn-compat) | 0.1.3 | Ease support for compatible scikit-learn estimators across versions
+[skrub](https://pypi.org/project/skrub) | 0.5.1 | Prepping tables for machine learning
+[smmap](https://pypi.org/project/smmap) | 5.0.0 | A pure Python implementation of a sliding window memory map manager
+[sniffio](https://pypi.org/project/sniffio) | 1.3.0 | Sniff out which async library your code is running under
+[snowballstemmer](https://pypi.org/project/snowballstemmer) | 2.2.0 | This package provides 29 stemmers for 28 languages generated from Snowball algorithms.
+[sortedcontainers](https://pypi.org/project/sortedcontainers) | 2.4.0 | Sorted Containers -- Sorted List, Sorted Dict, Sorted Set
+[sounddevice](https://pypi.org/project/sounddevice) | 0.5.1 | Play and Record Sound with Python
+[soupsieve](https://pypi.org/project/soupsieve) | 2.6 | A modern CSS selector implementation for Beautiful Soup.
+[sphinx](https://pypi.org/project/sphinx) | 7.3.7 | Python documentation generator
+[sphinx-rtd-theme](https://pypi.org/project/sphinx-rtd-theme) | 3.0.2 | Read the Docs theme for Sphinx
+[sphinxcontrib-applehelp](https://pypi.org/project/sphinxcontrib-applehelp) | 2.0.0 | sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books
+[sphinxcontrib-devhelp](https://pypi.org/project/sphinxcontrib-devhelp) | 2.0.0 | sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents
+[sphinxcontrib-htmlhelp](https://pypi.org/project/sphinxcontrib-htmlhelp) | 2.1.0 | sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files
+[sphinxcontrib-jquery](https://pypi.org/project/sphinxcontrib-jquery) | 4.1 | Extension to include jQuery on newer Sphinx releases
+[sphinxcontrib-jsmath](https://pypi.org/project/sphinxcontrib-jsmath) | 1.0.1 | A sphinx extension which renders display math in HTML via JavaScript
+[sphinxcontrib-qthelp](https://pypi.org/project/sphinxcontrib-qthelp) | 2.0.0 | sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents
+[sphinxcontrib-serializinghtml](https://pypi.org/project/sphinxcontrib-serializinghtml) | 2.0.0 | sphinxcontrib-serializinghtml is a sphinx extension which outputs "serialized" HTML files (json and pickle)
+[spyder](https://pypi.org/project/spyder) | 6.0.5 | The Scientific Python Development Environment
+[spyder-kernels](https://pypi.org/project/spyder-kernels) | 3.0.3 | Jupyter kernels for Spyder's console
+[sqlalchemy](https://pypi.org/project/sqlalchemy) | 2.0.38 | Database Abstraction Library
+[sqlite-bro](https://pypi.org/project/sqlite-bro) | 0.13.1 | a graphic SQLite Client in 1 Python file
+[sqlite-fts4](https://pypi.org/project/sqlite-fts4) | 1.0.3 | Python functions for working with SQLite FTS4 search
+[sqlite-utils](https://pypi.org/project/sqlite-utils) | 3.38 | CLI tool and Python library for manipulating SQLite databases
+[sqlparse](https://pypi.org/project/sqlparse) | 0.5.3 | A non-validating SQL parser.
+[squarify](https://pypi.org/project/squarify) | 0.4.4 | Pure Python implementation of the squarify treemap layout algorithm
+[sspilib](https://pypi.org/project/sspilib) | 0.2.0 | SSPI API bindings for Python
+[stack-data](https://pypi.org/project/stack-data) | 0.6.3 | Extract data from python stack frames and tracebacks for informative displays
+[starlette](https://pypi.org/project/starlette) | 0.45.3 | The little ASGI library that shines.
+[statsmodels](https://pypi.org/project/statsmodels) | 0.14.4 | Statistical computations and models for Python
+[streamlit](https://pypi.org/project/streamlit) | 1.44.0 | A faster way to build and share data apps
+[superqt](https://pypi.org/project/superqt) | 0.7.1 | Missing widgets and components for PyQt/PySide
+[sv-ttk](https://pypi.org/project/sv-ttk) | 2.6.0 | A gorgeous theme for Tkinter, based on Windows 11's UI
+[sympy](https://pypi.org/project/sympy) | 1.13.3 | Computer algebra system (CAS) in Python
+[tabulate](https://pypi.org/project/tabulate) | 0.9.0 | Pretty-print tabular data
+[tblib](https://pypi.org/project/tblib) | 3.0.0 | Traceback serialization library.
+[tenacity](https://pypi.org/project/tenacity) | 9.0.0 | Retry code until it succeeds
+[termcolor](https://pypi.org/project/termcolor) | 2.5.0 | ANSI color formatting for output in terminal
+[terminado](https://pypi.org/project/terminado) | 0.18.1 | Tornado websocket backend for the Xterm.js Javascript terminal emulator library.
+[text-unidecode](https://pypi.org/project/text-unidecode) | 1.3 | The most basic Text::Unidecode port
+[textdistance](https://pypi.org/project/textdistance) | 4.6.3 | Compute distance between the two texts.
+[thefuzz](https://pypi.org/project/thefuzz) | 0.22.1 | Fuzzy string matching in python
+[threadpoolctl](https://pypi.org/project/threadpoolctl) | 3.5.0 | threadpoolctl
+[three-merge](https://pypi.org/project/three-merge) | 0.1.1 | Simple library for merging two strings with respect to a base one
+[tifffile](https://pypi.org/project/tifffile) | 2025.1.10 | Read and write TIFF files
+[tiktoken](https://pypi.org/project/tiktoken) | 0.8.0 | tiktoken is a fast BPE tokeniser for use with OpenAI's models
+[tinycss2](https://pypi.org/project/tinycss2) | 1.4.0 | A tiny CSS parser
+[tokenizers](https://pypi.org/project/tokenizers) | 0.21.0 |
+[toml](https://pypi.org/project/toml) | 0.10.2 | Python Library for Tom's Obvious, Minimal Language
+[tomli](https://pypi.org/project/tomli) | 2.2.1 | A lil' TOML parser
+[tomli-w](https://pypi.org/project/tomli-w) | 1.2.0 | A lil' TOML writer
+[tomlkit](https://pypi.org/project/tomlkit) | 0.13.2 | Style preserving TOML library
+[toolz](https://pypi.org/project/toolz) | 1.0.0 | List processing tools and functional utilities
+[tornado](https://pypi.org/project/tornado) | 6.4.2 | Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed.
+[tqdm](https://pypi.org/project/tqdm) | 4.66.4 | Fast, Extensible Progress Meter
+[traitlets](https://pypi.org/project/traitlets) | 5.14.1 | Traitlets Python configuration system
+[traittypes](https://pypi.org/project/traittypes) | 0.2.1 | Scipy trait types
+[trio](https://pypi.org/project/trio) | 0.29.0 | A friendly Python library for async concurrency and I/O
+[trove-classifiers](https://pypi.org/project/trove-classifiers) | 2024.10.21.16 | Canonical source for classifiers on PyPI (pypi.org).
+[twine](https://pypi.org/project/twine) | 6.1.0 | Collection of utilities for publishing packages on PyPI
+[typer](https://pypi.org/project/typer) | 0.15.2 | Typer, build great CLIs. Easy to code. Based on Python type hints.
+[types-python-dateutil](https://pypi.org/project/types-python-dateutil) | 2.9.0.20240316 | Typing stubs for python-dateutil
+[types-requests](https://pypi.org/project/types-requests) | 2.32.0.20241016 | Typing stubs for requests
+[typing-extensions](https://pypi.org/project/typing-extensions) | 4.12.2 | Backported and Experimental Type Hints for Python 3.8+
+[typing-inspect](https://pypi.org/project/typing-inspect) | 0.9.0 | Runtime inspection utilities for typing module.
+[tzdata](https://pypi.org/project/tzdata) | 2024.1 | Provider of IANA time zone data
+[tzlocal](https://pypi.org/project/tzlocal) | 5.2 | tzinfo object for the local timezone
+[uc-micro-py](https://pypi.org/project/uc-micro-py) | 1.0.1 | Micro subset of unicode data files for linkify-it-py projects.
+[ujson](https://pypi.org/project/ujson) | 5.10.0 | Ultra fast JSON encoder and decoder for Python
+[umap-learn](https://pypi.org/project/umap-learn) | 0.5.6 | Uniform Manifold Approximation and Projection
+[uncertainties](https://pypi.org/project/uncertainties) | 3.2.2 | calculations with values with uncertainties, error propagation
+[uri-template](https://pypi.org/project/uri-template) | 1.3.0 | RFC 6570 URI Template Processor
+[urllib3](https://pypi.org/project/urllib3) | 2.2.3 | HTTP library with thread-safe connection pooling, file post, and more.
+[uvicorn](https://pypi.org/project/uvicorn) | 0.34.0 | The lightning-fast ASGI server.
+[vega-datasets](https://pypi.org/project/vega-datasets) | 0.9.0 | A Python package for offline access to Vega datasets
+[waitress](https://pypi.org/project/waitress) | 3.0.0 | Waitress WSGI server
+[watchdog](https://pypi.org/project/watchdog) | 6.0.0 | Filesystem events monitoring
+[wcwidth](https://pypi.org/project/wcwidth) | 0.2.13 | Measures the displayed width of unicode strings in a terminal
+[webcolors](https://pypi.org/project/webcolors) | 24.11.1 | A library for working with the color formats defined by HTML and CSS.
+[webencodings](https://pypi.org/project/webencodings) | 0.5.1 | Character encoding aliases for legacy web content
+[websocket-client](https://pypi.org/project/websocket-client) | 1.8.0 | WebSocket client for Python with low level API options
+[werkzeug](https://pypi.org/project/werkzeug) | 3.1.3 | The comprehensive WSGI web application library.
+[whatthepatch](https://pypi.org/project/whatthepatch) | 1.0.7 | A patch parsing and application library.
+[wheel](https://pypi.org/project/wheel) | 0.45.1 | A built-package format for Python
+[widgetsnbextension](https://pypi.org/project/widgetsnbextension) | 4.0.14 | Jupyter interactive widgets for Jupyter Notebook
+[winpython](https://pypi.org/project/winpython) | 15.3.20250425 | WinPython distribution tools, including WPPM
+[wordcloud](https://pypi.org/project/wordcloud) | 1.9.4 | A little word cloud generator
+[wrapt](https://pypi.org/project/wrapt) | 1.16.0 | Module for decorators, wrappers and monkey patching.
+[wsproto](https://pypi.org/project/wsproto) | 1.2.0 | WebSockets state-machine based protocol implementation
+[xarray](https://pypi.org/project/xarray) | 2025.3.0 | N-D labeled arrays and datasets in Python
+[xlsxwriter](https://pypi.org/project/xlsxwriter) | 3.1.9 | A Python module for creating Excel XLSX files.
+[xyzservices](https://pypi.org/project/xyzservices) | 2023.10.1 | Source of XYZ tiles providers
+[yapf](https://pypi.org/project/yapf) | 0.40.1 | A formatter for Python code.
+[yarl](https://pypi.org/project/yarl) | 1.18.3 | Yet another URL library
+[yt-dlp](https://pypi.org/project/yt-dlp) | 2025.2.19 | A feature-rich command-line audio/video downloader
+[zict](https://pypi.org/project/zict) | 3.0.0 | Mutable mapping tools
+[zipp](https://pypi.org/project/zipp) | 3.21.0 | Backport of pathlib-compatible object wrapper for zip files
+[zstandard](https://pypi.org/project/zstandard) | 0.23.0 | Zstandard bindings for Python
+
+
diff --git a/changelogs/WinPythonslim-64bit-3.13.3.0_History.md b/changelogs/WinPythonslim-64bit-3.13.3.0_History.md
new file mode 100644
index 00000000..9767b1e5
--- /dev/null
+++ b/changelogs/WinPythonslim-64bit-3.13.3.0_History.md
@@ -0,0 +1,148 @@
+## History of changes for WinPython-64bit 3.13.3.0slim
+
+The following changes were made to WinPython-64bit distribution since version 3.13.2.0slim.
+
+
+
+### Tools
+
+New packages:
+
+ * [Pandoc](https://pandoc.org) 3.1.9 (an universal document converter)
+
+### Python packages
+
+New packages:
+
+ * [asyncssh](https://pypi.org/project/asyncssh) 2.20.0 (AsyncSSH: Asynchronous SSHv2 client and server library)
+ * [deprecated](https://pypi.org/project/deprecated) 1.2.14 (Python @deprecated decorator to deprecate old python classes, functions or methods.)
+ * [flexcache](https://pypi.org/project/flexcache) 0.3 (Saves and loads to the cache a transformed versions of a source object.)
+ * [flexparser](https://pypi.org/project/flexparser) 0.4 (Parsing made fun ... using typing.)
+ * [id](https://pypi.org/project/id) 1.5.0 (A tool for generating OIDC identities)
+ * [pygithub](https://pypi.org/project/pygithub) 2.6.1 (Use the full Github API v3)
+ * [pyuca](https://pypi.org/project/pyuca) 1.2 (a Python implementation of the Unicode Collation Algorithm)
+ * [shellingham](https://pypi.org/project/shellingham) 1.5.4 (Tool to Detect Surrounding Shell)
+ * [skrub](https://pypi.org/project/skrub) 0.5.1 (Prepping tables for machine learning)
+ * [superqt](https://pypi.org/project/superqt) 0.7.1 (Missing widgets and components for PyQt/PySide)
+ * [sv-ttk](https://pypi.org/project/sv-ttk) 2.6.0 (A gorgeous theme for Tkinter, based on Windows 11's UI)
+ * [typer](https://pypi.org/project/typer) 0.15.2 (Typer, build great CLIs. Easy to code. Based on Python type hints.)
+ * [wrapt](https://pypi.org/project/wrapt) 1.16.0 (Module for decorators, wrappers and monkey patching.)
+
+Upgraded packages:
+
+ * [alembic](https://pypi.org/project/alembic) 1.13.1 → 1.15.1 (A database migration tool for SQLAlchemy.)
+ * [anthropic](https://pypi.org/project/anthropic) 0.42.0 → 0.49.0 (The official Python library for the anthropic API)
+ * [anyio](https://pypi.org/project/anyio) 4.7.0 → 4.8.0 (High level compatibility layer for multiple asynchronous event loop implementations)
+ * [array-api-compat](https://pypi.org/project/array-api-compat) 1.10.0 → 1.11.1 (A wrapper around NumPy and other array libraries to make them compatible with the Array API standard)
+ * [azure-core](https://pypi.org/project/azure-core) 1.30.2 → 1.32.0 (Microsoft Azure Core Library for Python)
+ * [azure-cosmos](https://pypi.org/project/azure-cosmos) 4.7.0 → 4.9.0 (Microsoft Azure Cosmos Client Library for Python)
+ * [azure-identity](https://pypi.org/project/azure-identity) 1.16.1 → 1.21.0 (Microsoft Azure Identity Library for Python)
+ * [black](https://pypi.org/project/black) 24.10.0 → 25.1.0 (The uncompromising code formatter.)
+ * [bokeh](https://pypi.org/project/bokeh) 3.6.3 → 3.7.2 (Interactive plots and applications in the browser from Python)
+ * [cachetools](https://pypi.org/project/cachetools) 5.4.0 → 5.5.2 (Extensible memoizing collections and decorators)
+ * [certifi](https://pypi.org/project/certifi) 2024.6.2 → 2025.1.31 (Python package for providing Mozilla's CA Bundle.)
+ * [click](https://pypi.org/project/click) 8.1.7 → 8.1.8 (Composable command line interface toolkit)
+ * [cloudpickle](https://pypi.org/project/cloudpickle) 3.0.0 → 3.1.1 (Pickler class to extend the standard pickle.Pickler functionality)
+ * [cvxpy](https://pypi.org/project/cvxpy) 1.6.0 → 1.6.4 (A domain-specific language for modeling convex optimization problems in Python.)
+ * [cython](https://pypi.org/project/cython) 3.0.11 → 3.0.12 (The Cython compiler for writing C extensions in the Python language.)
+ * [dask](https://pypi.org/project/dask) 2024.12.1 → 2025.3.0 (Parallel PyData with Task Scheduling)
+ * [datasette](https://pypi.org/project/datasette) 0.64.8 → 0.65.1 (An open source multi-tool for exploring and publishing data)
+ * [datashader](https://pypi.org/project/datashader) 0.16.3 → 0.17.0 (Data visualization toolchain based on aggregating into a grid)
+ * [diff-match-patch](https://pypi.org/project/diff-match-patch) 20230430 → 20241021 (Repackaging of Google's Diff Match and Patch libraries.)
+ * [distributed](https://pypi.org/project/distributed) 2024.12.1 → 2025.3.0 (Distributed scheduler for Dask)
+ * [docstring-to-markdown](https://pypi.org/project/docstring-to-markdown) 0.13 → 0.15 (On the fly conversion of Python docstrings to markdown)
+ * [duckdb](https://pypi.org/project/duckdb) 1.2.0 → 1.2.2 (DuckDB in-process database)
+ * [executing](https://pypi.org/project/executing) 2.0.1 → 2.2.0 (Get the currently executing AST node of a frame, and other information)
+ * [faker](https://pypi.org/project/faker) 33.3.1 → 36.1.1 (Faker is a Python package that generates fake data for you.)
+ * [fastapi](https://pypi.org/project/fastapi) 0.115.6 → 0.115.8 (FastAPI framework, high performance, easy to learn, fast to code, ready for production)
+ * [filelock](https://pypi.org/project/filelock) 3.14.0 → 3.17.0 (A platform independent file lock.)
+ * [folium](https://pypi.org/project/folium) 0.18.0 → 0.19.5 (Make beautiful maps with Leaflet.js & Python)
+ * [holoviews](https://pypi.org/project/holoviews) 1.20.0 → 1.20.2 (A high-level plotting API for the PyData ecosystem built on HoloViews.)
+ * [hpack](https://pypi.org/project/hpack) 4.0.0 → 4.1.0 (Pure-Python HPACK header encoding)
+ * [huggingface-hub](https://pypi.org/project/huggingface-hub) 0.28.1 → 0.29.3 (Client library to download and publish models, datasets and other repos on the huggingface.co hub)
+ * [hypercorn](https://pypi.org/project/hypercorn) 0.16.0 → 0.17.3 (A ASGI Server based on Hyper libraries and inspired by Gunicorn)
+ * [hyperframe](https://pypi.org/project/hyperframe) 6.0.1 → 6.1.0 (Pure-Python HTTP/2 framing)
+ * [hypothesis](https://pypi.org/project/hypothesis) 6.122.3 → 6.130.4 (A library for property-based testing)
+ * [idna](https://pypi.org/project/idna) 3.7 → 3.10 (Internationalized Domain Names in Applications (IDNA))
+ * [imageio](https://pypi.org/project/imageio) 2.33.1 → 2.37.0 (Library for reading and writing a wide range of image, video, scientific, and volumetric data formats.)
+ * [importlib-metadata](https://pypi.org/project/importlib-metadata) 7.1.0 → 8.6.1 (Read metadata from Python packages)
+ * [ipympl](https://pypi.org/project/ipympl) 0.9.6 → 0.9.7 (Matplotlib Jupyter Extension)
+ * [ipython](https://pypi.org/project/ipython) 8.32.0 → 8.34.0 (IPython: Productive Interactive Computing)
+ * [ipywidgets](https://pypi.org/project/ipywidgets) 8.1.5 → 8.1.6 (Jupyter interactive widgets)
+ * [jupyter-client](https://pypi.org/project/jupyter-client) 8.6.2 → 8.6.3 (Jupyter protocol implementation and client libraries)
+ * [jupyter-events](https://pypi.org/project/jupyter-events) 0.10.0 → 0.12.0 (Jupyter Event System library)
+ * [jupyterlab](https://pypi.org/project/jupyterlab) 4.3.5 → 4.4.1 (JupyterLab computational environment)
+ * [jupyterlab-widgets](https://pypi.org/project/jupyterlab-widgets) 3.0.13 → 3.0.14 (Jupyter interactive widgets for JupyterLab)
+ * [keras](https://pypi.org/project/keras) 3.8.0 → 3.9.2 (Multi-backend Keras)
+ * [langchain](https://pypi.org/project/langchain) 0.3.18 → 0.3.23 (Building applications with LLMs through composability)
+ * [langchain-core](https://pypi.org/project/langchain-core) 0.3.34 → 0.3.51 (Building applications with LLMs through composability)
+ * [langchain-text-splitters](https://pypi.org/project/langchain-text-splitters) 0.3.6 → 0.3.8 (LangChain text splitting utilities)
+ * [langsmith](https://pypi.org/project/langsmith) 0.2.11 → 0.3.24 (Client library to connect to the LangSmith LLM Tracing and Evaluation Platform.)
+ * [markdown](https://pypi.org/project/markdown) 3.5.1 → 3.7 (Python implementation of John Gruber's Markdown.)
+ * [matplotlib](https://pypi.org/project/matplotlib) 3.10.0 → 3.10.1 (Python plotting package)
+ * [mypy](https://pypi.org/project/mypy) 1.14.0 → 1.15.0 (Optional static typing for Python)
+ * [mysql-connector-python](https://pypi.org/project/mysql-connector-python) 8.0.21 → 9.2.0 (A self-contained Python driver for communicating with MySQL servers, using an API that is compliant with the Python Database API Specification v)
+ * [narwhals](https://pypi.org/project/narwhals) 1.21.1 → 1.30.0 (Extremely lightweight compatibility layer between dataframe libraries)
+ * [notebook](https://pypi.org/project/notebook) 7.3.1 → 7.4.0 (Jupyter Notebook - A web-based notebook environment for interactive computing)
+ * [numba](https://pypi.org/project/numba) 0.61.0 → 0.61.2 (compiling Python code using LLVM)
+ * [numpy](https://pypi.org/project/numpy) 2.1.3 → 2.2.4 (Fundamental package for array computing in Python)
+ * [openai](https://pypi.org/project/openai) 1.61.1 → 1.72.0 (The official Python library for the openai API)
+ * [opencv-python](https://pypi.org/project/opencv-python) 4.10.0.84 → 4.11.0.86 (Wrapper package for OpenCV python bindings.)
+ * [optree](https://pypi.org/project/optree) 0.13.1 → 0.14.0 (Optimized PyTree Utilities.)
+ * [panel](https://pypi.org/project/panel) 1.6.0 → 1.6.2 (The powerful data exploration & web app framework for Python.)
+ * [param](https://pypi.org/project/param) 2.1.1 → 2.2.0 (Make your Python code clearer and more reliable by declaring Parameters.)
+ * [pip](https://pypi.org/project/pip) 24.3.1 → 25.0.1 (The PyPA recommended tool for installing Python packages.)
+ * [platformdirs](https://pypi.org/project/platformdirs) 4.2.2 → 4.3.6 (A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`.)
+ * [plotly](https://pypi.org/project/plotly) 5.24.1 → 6.0.1 (An open-source interactive data visualization library for Python)
+ * [polars](https://pypi.org/project/polars) 1.22.0 → 1.27.1 (Blazingly fast DataFrame library)
+ * [prometheus-client](https://pypi.org/project/prometheus-client) 0.18.0 → 0.21.1 (Python client for the Prometheus monitoring system.)
+ * [prompt-toolkit](https://pypi.org/project/prompt-toolkit) 3.0.48 → 3.0.50 (Library for building powerful interactive command lines in Python)
+ * [pyarrow](https://pypi.org/project/pyarrow) 19.0.0 → 19.0.1 (Python library for Apache Arrow)
+ * [pyasn1](https://pypi.org/project/pyasn1) 0.4.8 → 0.6.1 (Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208))
+ * [pyasn1-modules](https://pypi.org/project/pyasn1-modules) 0.2.8 → 0.4.1 (A collection of ASN.1-based protocols modules)
+ * [pyjwt](https://pypi.org/project/pyjwt) 2.8.0 → 2.10.1 (JSON Web Token implementation in Python)
+ * [pympler](https://pypi.org/project/pympler) 1.0.1 → 1.1 (A development tool to measure, monitor and analyze the memory behavior of Python objects.)
+ * [pyomo](https://pypi.org/project/pyomo) 6.8.2 → 6.9.1 (Pyomo: Python Optimization Modeling Objects)
+ * [pypandoc](https://pypi.org/project/pypandoc) 1.5 → 1.15 (Thin wrapper for pandoc.)
+ * [pytest](https://pypi.org/project/pytest) 8.2.2 → 8.3.4 (pytest: simple powerful testing with Python)
+ * [Python](http://www.python.org/) 3.13.2 → 3.13.3 (Python programming language with standard library)
+ * [pytz](https://pypi.org/project/pytz) 2024.1 → 2024.2 (World timezone definitions, modern and historical)
+ * [pyzmq](https://pypi.org/project/pyzmq) 26.2.0 → 26.2.1 (Python bindings for 0MQ)
+ * [qtawesome](https://pypi.org/project/qtawesome) 1.3.1 → 1.4.0 (FontAwesome icons in PyQt and PySide applications)
+ * [qtconsole](https://pypi.org/project/qtconsole) 5.5.2 → 5.6.1 (Jupyter Qt console)
+ * [quart](https://pypi.org/project/quart) 0.19.4 → 0.20.0 (A Python ASGI web framework with the same API as Flask)
+ * [rtree](https://pypi.org/project/rtree) 1.1.0 → 1.3.0 (R-Tree spatial index for Python GIS)
+ * [rx](https://pypi.org/project/rx) 3.1.1 → 3.2.0 (Reactive Extensions (Rx) for Python)
+ * [scikit-image](https://pypi.org/project/scikit-image) 0.25.0 → 0.25.2 (Image processing in Python)
+ * [scipy](https://pypi.org/project/scipy) 1.15.1 → 1.15.2 (Fundamental algorithms for scientific computing in Python)
+ * [send2trash](https://pypi.org/project/send2trash) 1.8.2 → 1.8.3 (Send file to trash natively under Mac OS X, Windows and Linux)
+ * [setuptools](https://pypi.org/project/setuptools) 75.6.0 → 75.8.2 (Easily download, build, install, upgrade, and uninstall Python packages)
+ * [simpy](https://pypi.org/project/simpy) 4.0.1 → 4.1.1 (Event discrete, process based simulation for Python.)
+ * [spyder](https://pypi.org/project/spyder) 5.5.6 → 6.0.5 (The Scientific Python Development Environment)
+ * [spyder-kernels](https://pypi.org/project/spyder-kernels) 2.5.2 → 3.0.3 (Jupyter kernels for Spyder's console)
+ * [sqlalchemy](https://pypi.org/project/sqlalchemy) 2.0.35 → 2.0.38 (Database Abstraction Library)
+ * [starlette](https://pypi.org/project/starlette) 0.41.3 → 0.45.3 (The little ASGI library that shines.)
+ * [streamlit](https://pypi.org/project/streamlit) 1.41.1 → 1.44.0 (A faster way to build and share data apps)
+ * [tomli-w](https://pypi.org/project/tomli-w) 1.1.0 → 1.2.0 (A lil' TOML writer)
+ * [trio](https://pypi.org/project/trio) 0.28.0 → 0.29.0 (A friendly Python library for async concurrency and I/O)
+ * [twine](https://pypi.org/project/twine) 6.0.1 → 6.1.0 (Collection of utilities for publishing packages on PyPI)
+ * [widgetsnbextension](https://pypi.org/project/widgetsnbextension) 4.0.13 → 4.0.14 (Jupyter interactive widgets for Jupyter Notebook)
+ * [winpython](https://pypi.org/project/winpython) 13.1.20250222 → 15.3.20250425 (WinPython distribution tools, including WPPM)
+ * [xarray](https://pypi.org/project/xarray) 2025.1.1 → 2025.3.0 (N-D labeled arrays and datasets in Python)
+ * [yt-dlp](https://pypi.org/project/yt-dlp) 2023.7.6 → 2025.2.19 (A feature-rich command-line audio/video downloader)
+
+Removed packages:
+
+ * [bcrypt](https://pypi.org/project/bcrypt) 4.0.1 (Modern password hashing for your software and your servers)
+ * [dask_expr](https://pypi.org/project/dask_expr) 1.1.21 (High Level Expressions for Dask )
+ * [mutagen](https://pypi.org/project/mutagen) 1.47.0 (read and write audio tags for many formats)
+ * [paramiko](https://pypi.org/project/paramiko) 2.8.0 (SSH2 protocol library)
+ * [pint](https://pypi.org/project/pint) 0.23 (Physical quantities module)
+ * [pkginfo](https://pypi.org/project/pkginfo) 1.11.2 (Query metadata from sdists / bdists / installed packages.)
+ * [pycryptodomex](https://pypi.org/project/pycryptodomex) 3.20.0 (Cryptographic library for Python)
+ * [streamz](https://pypi.org/project/streamz) 0.6.3 (Streams)
+ * [websockets](https://pypi.org/project/websockets) 14.2 (An implementation of the WebSocket Protocol (RFC 6455 & 7692))
+
+
+
+* * *
diff --git a/changelogs/md5_sha1.txt b/changelogs/md5_sha1.txt
index a5e7b0a5..2ab82bcb 100644
--- a/changelogs/md5_sha1.txt
+++ b/changelogs/md5_sha1.txt
@@ -1,3 +1,21 @@
+### WinPython 2025-02 release (May 4th, 2025)
+
+MD5 | SHA-1 | SHA-256 | Binary | Size | blake2b-256
+---------------------------------|------------------------------------------|------------------------------------------------------------------|-----------------------------------|----------------------|-----------------------------------------------------------------
+b5a3814f26dade2f6ee9acf983427a8e | b3826baea1606868628128bab5527e3600342fbf | 517eff0673658da3f2da64a28afbd7733fb91807f7d074d3a9e9e6c0eb1dd523 | Winpython64-3.12.10.0dot.7z | 23 076 535 Bytes | e3e4b8b944e79cf20dea5e7691c24485a5b68bb70d34df6edfb181fd499b0335
+6f354778174e04fdb4c4c28c7a543f31 | 5d1bd5bd76dcb0e61df1a268e4ce47f56acbfe6f | b6d196d72ce443ccfbdb5a640f5645a7ade742092fddde65d73755c4eba89a1d | Winpython64-3.12.10.0dot.exe | 23 291 575 Bytes | 785f61ee3821d772bdbff037f86a4229d707c97d97f2508e8cdd03f81c1a8436
+431e37ef366ebe9ae30fa7fb162bb314 | 32965a55a8bc119b96875c542d9a08c6f4ed9b75 | bcb2a87ef210076ff4507a4a644bfb82daa0c2361e7945e5cb7de161450460f6 | Winpython64-3.12.10.0dot.zip | 38 334 544 Bytes | ab0b83f09299291a36298754a445429964f610f507b18e484f6bdf572880acbe
+6e7131129ff75dd4e8832f7be131dcc3 | 4d6c5b10d4b3044b9a70597fcd4fd34cd5e2b2a8 | 294c287c4a9918c730d26188e2dc34e97a92431c83515165f04c2ea8d33f0c1d | Winpython64-3.12.10.0slim.7z | 624 548 662 Bytes | f0b952a2fe29837783b69dcb4259369ee5c1d40a3220ad0b4dd82b1668322973
+3cefa92f927471aeef6c1fa3b7911166 | 1699db6b9c44b605c9f2031201bb58a46a260f0e | 3ea3368ca0e9182c03e8e0bc38b65c5398dd4f8aee7ccf5ab38d5a9226af6b9a | Winpython64-3.12.10.0slim.exe | 624 763 614 Bytes | 8584e33e01025ce04d0e429f2c08c7fe94576901aabf030341b21e0837ed5966
+95c7326579dbd4a16cb2f5b56a141673 | f28906c1e3e4ba073f0363a4e35326f9e8090ce1 | 13abddd4cc2702be56b672c868d0d1bc085e80748dc7d7e9315ab4080f157f3b | Winpython64-3.13.3.0dot.7z | 24 839 744 Bytes | 1cb42e1ea66116bc0e7804fb44bb519140d5a5acc9bb63c650ef38dc138ca0bb
+bccca9b3e79dfbc13d14837e3ba85c9b | 41c805812b778ccaf3781701264b23e6c9908069 | a6b1882b8eff8a44782bfeec7e5228826ebd38c4234e10ba38a52a85860c41d0 | Winpython64-3.13.3.0dot.exe | 25 054 784 Bytes | eea4a48f72d3ca7e784e86883ef2b46cd48a75fd68321c1088e9ed8c11ad47bd
+06a5eb8fa4f7447ad63b7e214b126fd7 | 80ab8340798a318c09ffe07a77a920d5d1eda2b7 | f7ef5a6cfe23b7f39f87c128594fc6c7f73f42f9516a0b828dac0da187af68ec | Winpython64-3.13.3.0dot.zip | 39 870 933 Bytes | a4f9a910f55c5efdbb843874384d5295ff3b3a45d27cab63f74d2f215f9d798c
+40e207597ddecd78f60e8474d8dc3c81 | 5e4df5e04424a754b33e4a63f4ae31d0a65eb0a5 | 0ee4eaa17ed86fbcb9e861989e08c85dcf13ca1ef067c52f4fc8b68dd7836c46 | Winpython64-3.13.3.0slim.7z | 629 049 097 Bytes | f275d41a374ff5f3b75decbe65cd52a54c1ac8157edeb62f377dfa2278201ccb
+312a8e7fa70b5b58e44f69c1066687a8 | 12e992d1e40fb04c0e7fe367a983dc27ef88b151 | 9abfd2a54ba314dfe573792a573ad31a43e63765f7b77c2002849086a1a47c5e | Winpython64-3.13.3.0slim.exe | 629 265 120 Bytes | 87fc9b086fae8a07b234fcced8b428cd0c3367a9ff068cd3c28b661813c94cab
+588e3a1a7ddc461f528270a302a3b667 | a77e443c86c1d21c9a177193e69847efa6346373 | 060046dc83030a639d50396f403a28556ebbd87495bb14045b21118e6cff4c4b | requirement_hash.WinPython64-3.12.10..0slim.txt | 78 133 Bytes | 54d3902407c7c935d83681796585e24d80478f68d22d62ff500d4072ab0385b0
+fb5edb31a3f1e0e7f43eb810f5dd4032 | c6c043e8ec9c7af50eb2d297a91c1b87d3bc7074 | 225500ba0b3aea779b24f7b17bece53250b24380390685bac5ae6c5804f68367 | requirement_hash.WinPython64-3.13.3.0slim.txt | 78 125 Bytes | 1b3d8ff70b049c368ae848d69331faf2ceb19ddc6821ec3549e5511ecac7f393
+
+
### WinPython 2025-01 release (March 1st, 2025)
MD5 | SHA-1 | SHA-256 | Binary | Size | blake2b-256
diff --git a/generate_a_winpython_distro.bat b/generate_a_winpython_distro.bat
index 7fdbc12f..1766a18d 100644
--- a/generate_a_winpython_distro.bat
+++ b/generate_a_winpython_distro.bat
@@ -2,7 +2,7 @@ rem generate_a_winpython_distro.bat: to be launched from a winpython directory,
@echo on
REM Initialize variables
-if "%my_release_level%"=="" set my_release_level=b3
+if "%my_release_level%"=="" set my_release_level=b1
if "%my_create_installer%"=="" set my_create_installer=True
rem Set archive directory and log file
@@ -26,8 +26,8 @@ if "%target_python_exe%"=="" set target_python_exe=python.exe
rem Set Python target release based on my_python_target
if %my_python_target%==311 set my_python_target_release=3119& set my_release=1
-if %my_python_target%==312 set my_python_target_release=31210& set my_release=0
-if %my_python_target%==313 set my_python_target_release=3133& set my_release=0
+if %my_python_target%==312 set my_python_target_release=31210& set my_release=1
+if %my_python_target%==313 set my_python_target_release=3133& set my_release=1
if %my_python_target%==314 set my_python_target_release=3140& set my_release=0
echo -------------------------------------- >>%my_archive_log%
@@ -114,6 +114,47 @@ cd /D %~dp0
call %my_buildenv%\scripts\env.bat
python.exe -c "from make import *;make_all(%my_release%, '%my_release_level%', pyver='%my_pyver%', basedir=r'%my_basedir%', verbose=True, architecture=%my_arch%, flavor='%my_flavor%', install_options=r'%my_install_options%', find_links=r'%my_find_links%', source_dirs=r'%my_source_dirs%', create_installer='%my_create_installer%', rebuild=False, python_target_release='%my_python_target_release%')" >> %my_archive_log%
+echo -------------------------------------- >>%my_archive_log%
+echo "(%date% %time%) generate pylock.tomle files and requirement_with_hash.txt files">>%my_archive_log%
+echo -------------------------------------- >>%my_archive_log%
+
+set path=%my_original_path%
+call %my_WINPYDIRBASE%\scripts\env.bat
+
+rem generate pip freeze requirements
+echo %date% %time%
+set LOCKDIR=%WINPYDIRBASE%\..\
+set req=%LOCKDIR%requirement_%WINPYVER%_raw.txt
+set wanted_req=%LOCKDIR%requirement_%WINPYVER%.txt
+set pip_lock_web=%LOCKDIR%pylock_%WINPYVER%.toml
+set pip_lock_local=%LOCKDIR%pylock_%WINPYVER%_local.toml
+set req_lock_web=%LOCKDIR%requirement_with_hash_%WINPYVER%.txt
+set req_lock_local=%LOCKDIR%requirement_with_hash_%WINPYVER%_local.txt
+
+set my_archive_lockfile=%my_archive_dir%\pylock_%WINPYVER%_%date:/=-%at_%my_time%.toml
+set my_archive_lockfile_local=%my_archive_dir%\pylock_%WINPYVER%_%date:/=-%at_%my_time%_local.tml
+set my_changelog_lockfile=%~dp0changelogs\pylock_%WINPYVER%.toml
+
+python.exe -m pip freeze>%req%
+findstr /v "winpython" %req% > %wanted_req%
+
+
+rem pip lock from pypi, from the frozen req
+python.exe -m pip lock --no-deps -c C:\WinP\constraints.txt -r "%wanted_req%" -o %pip_lock_web%
+
+rem pip lock from local WheelHouse, from the frozen req
+python.exe -m pip lock --no-deps --no-index --trusted-host=None --find-links=C:\WinP\packages.srcreq -c C:\WinP\constraints.txt -r "%wanted_req%" -o %pip_lock_local%
+
+rem generating also classic requirement with hash-256, from obtained pylock.toml
+python.exe -c "from winpython import wheelhouse as wh;wh.pylock_to_req(r'%pip_lock_web%', r'%req_lock_web%')"
+python.exe -c "from winpython import wheelhouse as wh;wh.pylock_to_req(r'%pip_lock_local%', r'%req_lock_local%')"
+
+rem compare the two (result from pypi and local Wheelhouse must be equal)
+fc "%req_lock_web%" "%req_lock_local%"
+
+copy/Y %pip_lock_web% %my_archive_lockfile%
+copy/Y %pip_lock_web% %my_changelog_lockfile%
+
echo -------------------------------------- >>%my_archive_log%
echo "(%date% %time%) END OF CREATION">>%my_archive_log%
echo -------------------------------------- >>%my_archive_log%
diff --git a/make.py b/make.py
index ed896854..c1a6a93a 100644
--- a/make.py
+++ b/make.py
@@ -102,9 +102,6 @@ def _get_python_zip_file(self) -> Path:
@property
def package_index_markdown(self) -> str:
"""Generates a Markdown formatted package index page."""
- installed_tools_markdown = self._get_installed_tools_markdown()
- installed_packages_markdown = self._get_installed_packages_markdown()
-
return f"""## WinPython {self.winpyver2 + self.flavor}
The following packages are included in WinPython-{self.architecture_bits}bit v{self.winpyver2 + self.flavor} {self.release_level}.
@@ -115,49 +112,17 @@ def package_index_markdown(self) -> str:
Name | Version | Description
-----|---------|------------
-{installed_tools_markdown}
+{utils.get_installed_tools_markdown(utils.get_python_executable(self.python_executable_directory))}
### Python packages
Name | Version | Description
-----|---------|------------
-[Python](http://www.python.org/) | {self.python_full_version} | Python programming language with standard library
-{installed_packages_markdown}
+{self.distribution.get_installed_packages_markdown()}
"""
- def _get_installed_tools_markdown(self) -> str:
- """Generates Markdown for installed tools section in package index."""
- tool_lines = []
-
- if (nodejs_path := self.winpython_directory / NODEJS_RELATIVE_PATH).exists():
- version = utils.exec_shell_cmd("node -v", nodejs_path).splitlines()[0]
- tool_lines.append(f"[Nodejs](https://nodejs.org) | {version} | xa JavaScript runtime built on Chrome's V8 JavaScript engine")
- version = utils.exec_shell_cmd("npm -v", nodejs_path).splitlines()[0]
- tool_lines.append(f"[npmjs](https://www.npmjs.com) | {version} | a package manager for JavaScript")
-
- if (pandoc_exe := self.winpython_directory / "t" / "pandoc.exe").exists():
- version = utils.exec_shell_cmd("pandoc -v", pandoc_exe.parent).splitlines()[0].split(" ")[-1]
- tool_lines.append(f"[Pandoc](https://pandoc.org) | {version} | an universal document converter")
-
- if vscode_exe := (self.winpython_directory / "t" / "VSCode" / "Code.exe").exists():
- version = utils.getFileProperties(str(vscode_exe))["FileVersion"]
- tool_lines.append(f"[VSCode](https://code.visualstudio.com) | {version} | a source-code editor developed by Microsoft")
-
- return "\n".join(tool_lines)
-
- def _get_installed_packages_markdown(self) -> str:
- """Generates Markdown for installed packages section in package index."""
- if not self.distribution:
- return "" # Distribution not initialized yet.
- self.installed_packages = self.distribution.get_installed_packages(update=True)
- package_lines = [
- f"[{pkg.name}]({pkg.url}) | {pkg.version} | {pkg.description}"
- for pkg in sorted(self.installed_packages, key=lambda p: p.name.lower())
- ]
- return "\n".join(package_lines)
-
@property
def winpython_version_name(self) -> str:
"""Returns the full WinPython version string."""
@@ -287,8 +252,6 @@ def build(self, rebuild: bool = True, requirements_files_list=None, winpy_dirnam
self.distribution.do_pip_action(actions)
self.distribution.patch_standard_packages()
- self._print_action("Cleaning up distribution")
- self.distribution.clean_up() # still usefull ?
self._print_action("Writing package index")
self.winpyver2 = f"{self.python_full_version}.{self.build_number}"
output_markdown_filename = str(self.winpython_directory.parent / f"WinPython{self.flavor}-{self.distribution.architecture}bit-{self.winpyver2}.md")
diff --git a/portable/build_my_launchers.bat b/portable/build_my_launchers.bat
index 04c4671e..579a96e6 100644
--- a/portable/build_my_launchers.bat
+++ b/portable/build_my_launchers.bat
@@ -7,21 +7,26 @@ set VCVARS_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\
rem pick the right ones and rename them in launchers_final
set do_launcher=%~dp0launchers_src\build_one_launcher.bat
+set do_launcher_original=%~dp0launchers_src_original\build_one_launcher.bat
::WINDOWS launchers
-call %do_launcher% "powershell.ico" "cmd_ps.bat" "WinPython Powershell Prompt" WINDOWS
+rem call %do_launcher% "python.ico" "winidle.bat" "IDLE (Python GUI)" WINDOWS proposed
+echo displace this pause if you want to re-build more
pause
-call %do_launcher% "python.ico" "winidle.bat" "IDLE (Python GUI)" WINDOWS
-call %do_launcher% "spyder.ico" "winspyder.bat" "Spyder" WINDOWS
-call %do_launcher% "spyder_reset.ico" "spyder_reset.bat" "Spyder reset" WINDOWS
-call %do_launcher% "code.ico" "winvscode.bat" "VS Code" WINDOWS
+rem exit
+
+
+call %do_launcher% "powershell.ico" "cmd_ps.bat" "WinPython Powershell Prompt" WINDOWS proposed
+call %do_launcher% "spyder.ico" "winspyder.bat" "Spyder" WINDOWS proposed
+call %do_launcher% "spyder_reset.ico" "spyder_reset.bat" "Spyder reset" WINDOWS proposed
+call %do_launcher% "code.ico" "winvscode.bat" "VS Code" WINDOWS proposed
:: CONSOLE launchers
-call %do_launcher% "cmd.ico" "cmd.bat" "WinPython Command Prompt" CONSOLE
-call %do_launcher% "python.ico" "winpython.bat" "WinPython Interpreter" CONSOLE
-call %do_launcher% "jupyter.ico" "winipython_notebook.bat" "Jupyter Notebook" CONSOLE
-call %do_launcher% "jupyter.ico" "winjupyter_lab.bat" "Jupyter Lab" CONSOLE
-call %do_launcher% "winpython.ico" "wpcp.bat" "WinPython Control Panel" CONSOLE
+call %do_launcher% "cmd.ico" "cmd.bat" "WinPython Command Prompt" CONSOLE proposed
+call %do_launcher% "python.ico" "winpython.bat" "WinPython Interpreter" CONSOLE proposed
+call %do_launcher% "jupyter.ico" "winipython_notebook.bat" "Jupyter Notebook" CONSOLE proposed
+call %do_launcher% "jupyter.ico" "winjupyter_lab.bat" "Jupyter Lab" CONSOLE proposed
+call %do_launcher% "winpython.ico" "wpcp.bat" "WinPython Control Panel" CONSOLE proposed
pause
diff --git a/portable/launchers_final/Jupyter Lab.exe b/portable/launchers_final/Jupyter Lab.exe
index 98bb8bde..93003fcb 100644
Binary files a/portable/launchers_final/Jupyter Lab.exe and b/portable/launchers_final/Jupyter Lab.exe differ
diff --git a/portable/launchers_final/Jupyter Notebook.exe b/portable/launchers_final/Jupyter Notebook.exe
index 5d59af59..28fdbea3 100644
Binary files a/portable/launchers_final/Jupyter Notebook.exe and b/portable/launchers_final/Jupyter Notebook.exe differ
diff --git a/portable/launchers_final_original/IDLE (Python GUI).exe b/portable/launchers_final_original/IDLE (Python GUI).exe
new file mode 100644
index 00000000..c1e0c9dc
Binary files /dev/null and b/portable/launchers_final_original/IDLE (Python GUI).exe differ
diff --git a/portable/launchers_final_original/Jupyter Lab.exe b/portable/launchers_final_original/Jupyter Lab.exe
new file mode 100644
index 00000000..98bb8bde
Binary files /dev/null and b/portable/launchers_final_original/Jupyter Lab.exe differ
diff --git a/portable/launchers_final_original/Jupyter Notebook.exe b/portable/launchers_final_original/Jupyter Notebook.exe
new file mode 100644
index 00000000..5d59af59
Binary files /dev/null and b/portable/launchers_final_original/Jupyter Notebook.exe differ
diff --git a/portable/launchers_final_original/Spyder reset.exe b/portable/launchers_final_original/Spyder reset.exe
new file mode 100644
index 00000000..21250f98
Binary files /dev/null and b/portable/launchers_final_original/Spyder reset.exe differ
diff --git a/portable/launchers_final_original/Spyder.exe b/portable/launchers_final_original/Spyder.exe
new file mode 100644
index 00000000..43874aa7
Binary files /dev/null and b/portable/launchers_final_original/Spyder.exe differ
diff --git a/portable/launchers_final_original/VS Code.exe b/portable/launchers_final_original/VS Code.exe
new file mode 100644
index 00000000..225decb4
Binary files /dev/null and b/portable/launchers_final_original/VS Code.exe differ
diff --git a/portable/launchers_final_original/WinPython Command Prompt.exe b/portable/launchers_final_original/WinPython Command Prompt.exe
new file mode 100644
index 00000000..e4e824c5
Binary files /dev/null and b/portable/launchers_final_original/WinPython Command Prompt.exe differ
diff --git a/portable/launchers_final_original/WinPython Control Panel.exe b/portable/launchers_final_original/WinPython Control Panel.exe
new file mode 100644
index 00000000..5795bf9c
Binary files /dev/null and b/portable/launchers_final_original/WinPython Control Panel.exe differ
diff --git a/portable/launchers_final_original/WinPython Interpreter.exe b/portable/launchers_final_original/WinPython Interpreter.exe
new file mode 100644
index 00000000..dfa43135
Binary files /dev/null and b/portable/launchers_final_original/WinPython Interpreter.exe differ
diff --git a/portable/launchers_final_original/WinPython Powershell Prompt.exe b/portable/launchers_final_original/WinPython Powershell Prompt.exe
new file mode 100644
index 00000000..d4512f32
Binary files /dev/null and b/portable/launchers_final_original/WinPython Powershell Prompt.exe differ
diff --git a/portable/launchers_final_proposed/IDLE (Python GUI).exe b/portable/launchers_final_proposed/IDLE (Python GUI).exe
new file mode 100644
index 00000000..01eed2ce
Binary files /dev/null and b/portable/launchers_final_proposed/IDLE (Python GUI).exe differ
diff --git a/portable/launchers_final_proposed/Jupyter Lab.exe b/portable/launchers_final_proposed/Jupyter Lab.exe
new file mode 100644
index 00000000..93003fcb
Binary files /dev/null and b/portable/launchers_final_proposed/Jupyter Lab.exe differ
diff --git a/portable/launchers_final_proposed/Jupyter Notebook.exe b/portable/launchers_final_proposed/Jupyter Notebook.exe
new file mode 100644
index 00000000..28fdbea3
Binary files /dev/null and b/portable/launchers_final_proposed/Jupyter Notebook.exe differ
diff --git a/portable/launchers_final_proposed/Spyder reset.exe b/portable/launchers_final_proposed/Spyder reset.exe
new file mode 100644
index 00000000..0baf4ab3
Binary files /dev/null and b/portable/launchers_final_proposed/Spyder reset.exe differ
diff --git a/portable/launchers_final_proposed/Spyder.exe b/portable/launchers_final_proposed/Spyder.exe
new file mode 100644
index 00000000..f3729201
Binary files /dev/null and b/portable/launchers_final_proposed/Spyder.exe differ
diff --git a/portable/launchers_final_proposed/VS Code.exe b/portable/launchers_final_proposed/VS Code.exe
new file mode 100644
index 00000000..731f5f52
Binary files /dev/null and b/portable/launchers_final_proposed/VS Code.exe differ
diff --git a/portable/launchers_final_proposed/WinPython Command Prompt.exe b/portable/launchers_final_proposed/WinPython Command Prompt.exe
new file mode 100644
index 00000000..6f1b6bd6
Binary files /dev/null and b/portable/launchers_final_proposed/WinPython Command Prompt.exe differ
diff --git a/portable/launchers_final_proposed/WinPython Control Panel.exe b/portable/launchers_final_proposed/WinPython Control Panel.exe
new file mode 100644
index 00000000..664ff576
Binary files /dev/null and b/portable/launchers_final_proposed/WinPython Control Panel.exe differ
diff --git a/portable/launchers_final_proposed/WinPython Interpreter.exe b/portable/launchers_final_proposed/WinPython Interpreter.exe
new file mode 100644
index 00000000..e0cdbe77
Binary files /dev/null and b/portable/launchers_final_proposed/WinPython Interpreter.exe differ
diff --git a/portable/launchers_final_proposed/WinPython Powershell Prompt.exe b/portable/launchers_final_proposed/WinPython Powershell Prompt.exe
new file mode 100644
index 00000000..c6bda2eb
Binary files /dev/null and b/portable/launchers_final_proposed/WinPython Powershell Prompt.exe differ
diff --git a/portable/launchers_final_proposed/license.txt b/portable/launchers_final_proposed/license.txt
new file mode 100644
index 00000000..da461f3b
--- /dev/null
+++ b/portable/launchers_final_proposed/license.txt
@@ -0,0 +1,37 @@
+Note
+----
+
+WinPython components are distributed as they were received from
+their copyright holder, under their own copyright and/or license,
+and without any linking with each other.
+
+WinPython software collection (i.e. the collection of software,
+libraries and documents) is licensed under the terms of the
+following license agreement.
+
+
+WinPython License Agreement (MIT License)
+-----------------------------------------
+
+Copyright (c) 2012 Pierre Raybaut, 2016+ WinPython team
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/portable/launchers_src/launcher_template_CONSOLE.cpp b/portable/launchers_src/launcher_template_CONSOLE.cpp
index 93614b9e..1008d7f0 100644
--- a/portable/launchers_src/launcher_template_CONSOLE.cpp
+++ b/portable/launchers_src/launcher_template_CONSOLE.cpp
@@ -19,6 +19,26 @@ int main() {
std::wstring exeDir = exePath;
exeDir = exeDir.substr(0, exeDir.find_last_of(L"\\/"));
+ // Get command line string and extract arguments
+ LPWSTR commandLine = GetCommandLineW();
+ std::wstring args;
+ // If executable path is double quoted, skip the entire quoted section
+ if (commandLine[0] == L'"') {
+ LPWSTR closingQuote = wcschr(commandLine + 1, L'"');
+ if (closingQuote) {
+ args = closingQuote + 1;
+ }
+ // For non-quoted path, skip to character after first space if it exists
+ } else {
+ LPWSTR spacePos = wcschr(commandLine, L' ');
+ if (spacePos) {
+ args = spacePos + 1;
+ }
+ }
+ // Strip leading whitespace
+ size_t args_start = args.find_first_not_of(L' ');
+ args = (args_start != std::wstring::npos) ? args.substr(args_start) : L"";
+
// Define the path to the "scripts" directory
std::wstring scriptsDir = exeDir + L"\\scripts";
@@ -37,8 +57,13 @@ int main() {
return 1;
}
- // Define the command to run
- std::wstring target = L"cmd.exe /c \"" LAUNCH_TARGET L"\"";
+ // Define the command to run and append arguments if present
+ std::wstring target;
+ if (!args.empty()) {
+ target = L"cmd.exe /c \"\"" LAUNCH_TARGET L"\" " + args + L"\"";
+ } else {
+ target = L"cmd.exe /c \"" LAUNCH_TARGET L"\"";
+ }
// Configure the process startup info
STARTUPINFO si = { sizeof(si) };
diff --git a/portable/launchers_src/launcher_template_WINDOWS.cpp b/portable/launchers_src/launcher_template_WINDOWS.cpp
index 9c878be6..6b10a89a 100644
--- a/portable/launchers_src/launcher_template_WINDOWS.cpp
+++ b/portable/launchers_src/launcher_template_WINDOWS.cpp
@@ -19,6 +19,26 @@ int WINAPI WinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPSTR /
std::wstring exeDir = exePath;
exeDir = exeDir.substr(0, exeDir.find_last_of(L"\\/"));
+ // Get command line string and extract arguments
+ LPWSTR commandLine = GetCommandLineW();
+ std::wstring args;
+ // If executable path is double quoted, skip the entire quoted section
+ if (commandLine[0] == L'"') {
+ LPWSTR closingQuote = wcschr(commandLine + 1, L'"');
+ if (closingQuote) {
+ args = closingQuote + 1;
+ }
+ // For non-quoted path, skip to character after first space if it exists
+ } else {
+ LPWSTR spacePos = wcschr(commandLine, L' ');
+ if (spacePos) {
+ args = spacePos + 1;
+ }
+ }
+ // Strip leading whitespace
+ size_t args_start = args.find_first_not_of(L" ");
+ args = (args_start != std::wstring::npos) ? args.substr(args_start) : L"";
+
// Define the path to the "scripts" directory
std::wstring scriptsDir = exeDir + L"\\scripts";
@@ -37,8 +57,13 @@ int WINAPI WinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPSTR /
return 1;
}
- // Define the command to run
- std::wstring target = L"cmd.exe /c \"" LAUNCH_TARGET L"\"";
+ // Define the command to run and append arguments if present
+ std::wstring target;
+ if (!args.empty()) {
+ target = L"cmd.exe /c \"\"" LAUNCH_TARGET L"\" " + args + L"\"";
+ } else {
+ target = L"cmd.exe /c \"" LAUNCH_TARGET L"\"";
+ }
// Configure the process startup info
STARTUPINFO si = { sizeof(si) };
diff --git a/portable/launchers_src_original/LICENSE b/portable/launchers_src_original/LICENSE
new file mode 100644
index 00000000..b3fb976c
--- /dev/null
+++ b/portable/launchers_src_original/LICENSE
@@ -0,0 +1,63 @@
+DataLab-WinPython license terms
+===============================
+
+DataLab-WinPython is a Python distribution for Windows:
+- Based on WinPython, a portable distribution of Python for Windows (see section I. below).
+- Including DataLab, an open-source platform for signal and image processing (see section II. below).
+
+I. - WinPython License Agreement (MIT License)
+----------------------------------------------
+
+Copyright (c) 2012 Pierre Raybaut, 2016+ WinPython team
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+II. - DataLab License Agreement (BSD 3-Clause License)
+------------------------------------------------------
+
+Copyright (c) 2023, DataLab Platform Developers.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/portable/launchers_src_original/build_one_launcher.bat b/portable/launchers_src_original/build_one_launcher.bat
new file mode 100644
index 00000000..233f68de
--- /dev/null
+++ b/portable/launchers_src_original/build_one_launcher.bat
@@ -0,0 +1,107 @@
+@echo on
+set icon_name=%1
+set LAUNCH_TARGET=%2
+set launcher_name=%3
+set subsystem=%4
+
+set icon_name=%icon_name:"=%
+set LAUNCH_TARGET=%LAUNCH_TARGET:"=%
+set launcher_name=%launcher_name:"=%
+set subsystem=%subsystem:"=%
+
+set ROOT_PATH=%~dp0..\
+set SCRIPT_PATH=%~dp0
+set TEMPO_PATH=%ROOT_PATH%launchers_temp
+set OUTPUT_DIR=%ROOT_PATH%launchers_final
+
+set "ICON_FILE=%ROOT_PATH%icons\%icon_name%"
+set LAUNCHER_EXE=%OUTPUT_DIR%\%launcher_name%.exe
+
+
+:: Paths to template WINDOWS or CONSOLE
+set SOURCE_FILE=%SCRIPT_PATH%launcher_template_%subsystem%.cpp
+echo SOURCE_FILE=%SOURCE_FILE%
+
+set "RESOURCE_FILE=%TEMPO_PATH%\%icon_name%.rc"
+set "RESOURCE_OBJ=%TEMPO_PATH%\%icon_name%.res"
+
+
+:: create pDirectory if needed
+if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
+if not exist "%TEMPO_PATH%" mkdir "%TEMPO_PATH%"
+
+cd/d %TEMPO_PATH%
+
+:: Check if MSVC environment is already initialized
+if not defined VSINSTALLDIR (
+ echo Initializing MSVC environment...
+ call %VCVARS_PATH%
+ if errorlevel 1 (
+ echo [ERROR] Failed to initialize MSVC environment.
+ exit /b 1
+ )
+)
+
+@echo on
+
+:: Walk through .bat files in the current directory
+ echo Processing %icon_name%..
+ :: Stonebig: Remove previous .exe file
+ echo launcher_exe_action del /q "%LAUNCHER_EXE%"
+ if exist "%LAUNCHER_EXE%" (
+ move "%LAUNCHER_EXE%" "%LAUNCHER_EXE%.old.exe"
+ del /q "%LAUNCHER_EXE%.old.exe"
+ )
+ :: Stonebig: Remove intermediate .res and.rc file
+ if exist "%RESOURCE_OBJ%" (
+ move "%RESOURCE_OBJ%" "%RESOURCE_OBJ%.old.exe"
+ del /q "%RESOURCE_OBJ%.old.exe"
+ )
+ if exist "%RESOURCE_FILE%" (
+ move "%RESOURCE_FILE%" "%RESOURCE_FILE%.old.exe"
+ del /q "%RESOURCE_FILE%.old.exe"
+ )
+ :: Remove intermediate .obj file
+ del /q "launcher_template_%subsystem%.obj"
+
+ :: Check if the icon exists
+ if exist "%ICON_FILE%" (
+ echo Icon found: "%ICON_FILE%"
+ ) else (
+ echo No icon found for "%ICON_FILE%" stoping
+ pause
+ exit
+ )
+
+
+ :: Create resource file
+ echo Creating resource file...
+ > "%RESOURCE_FILE%" echo IDI_ICON1 ICON "%ICON_FILE%"
+ :: Compile resource
+ echo Compiling resource...
+ rc /fo "%RESOURCE_OBJ%" "%RESOURCE_FILE%"
+
+ :: Compile the launcher executable
+ echo Compiling launcher executable...
+ cl /EHsc /O2 /DUNICODE /W4 "%SOURCE_FILE%" "%RESOURCE_OBJ%" ^
+ /Fe"%LAUNCHER_EXE%%" ^
+ /DLAUNCH_TARGET=\"%LAUNCH_TARGET%\" ^
+ User32.lib ^
+ /link /SUBSYSTEM:%subsystem%
+
+
+ if errorlevel 1 (
+ echo [ERROR] Failed to build launcher for %LAUNCH_TARGET%
+ exit /b 1
+ )
+
+ if exist "%LAUNCHER_EXE%" (
+ echo [SUCCESS] Launcher created: "%LAUNCHER_EXE%""
+ ) else (
+ echo [ERROR] Failed to build launcher "%LAUNCHER_EXE%" from "%icon_name%" to call "%LAUNCH_TARGET%"
+ exit /b 1
+ )
+
+echo All launchers processed.
+rem exit /b 0
+
diff --git a/portable/launchers_src_original/launcher_template_CONSOLE.cpp b/portable/launchers_src_original/launcher_template_CONSOLE.cpp
new file mode 100644
index 00000000..93614b9e
--- /dev/null
+++ b/portable/launchers_src_original/launcher_template_CONSOLE.cpp
@@ -0,0 +1,75 @@
+/*
+DataLab-WinPython launcher script
+---------------------------------
+
+Licensed under the terms of the BSD 3-Clause
+(see ./LICENSE for details)
+
+*/
+
+#include
+#include
+
+int main() {
+ // Get the path to the current executable
+ wchar_t exePath[MAX_PATH];
+ GetModuleFileNameW(NULL, exePath, MAX_PATH);
+
+ // Determine the directory of the executable
+ std::wstring exeDir = exePath;
+ exeDir = exeDir.substr(0, exeDir.find_last_of(L"\\/"));
+
+ // Define the path to the "scripts" directory
+ std::wstring scriptsDir = exeDir + L"\\scripts";
+
+ // Check if the "scripts" directory exists
+ DWORD attributes = GetFileAttributesW(scriptsDir.c_str());
+ if (attributes == INVALID_FILE_ATTRIBUTES || !(attributes & FILE_ATTRIBUTE_DIRECTORY)) {
+ MessageBoxW(NULL, L"The 'scripts' directory does not exist. Please ensure it is in the same folder as the launcher.",
+ L"Launcher Error", MB_ICONERROR);
+ return 1;
+ }
+
+ // Set the working directory to the "scripts" folder
+ if (!SetCurrentDirectoryW(scriptsDir.c_str())) {
+ MessageBoxW(NULL, L"Failed to set the working directory to 'scripts'.",
+ L"Launcher Error", MB_ICONERROR);
+ return 1;
+ }
+
+ // Define the command to run
+ std::wstring target = L"cmd.exe /c \"" LAUNCH_TARGET L"\"";
+
+ // Configure the process startup info
+ STARTUPINFO si = { sizeof(si) };
+ si.dwFlags = STARTF_USESHOWWINDOW; // Prevent the window from appearing
+ si.wShowWindow = SW_HIDE; // Hide the command window
+
+ PROCESS_INFORMATION pi = {};
+
+ // Start the process without CREATE_NO_WINDOW flag to show the command window
+ if (!CreateProcessW(
+ NULL, // Application name (NULL because we pass the command in the command line)
+ &target[0], // Command line
+ NULL, // Process security attributes
+ NULL, // Thread security attributes
+ FALSE, // Inherit handles
+ 0, // No special flags
+ NULL, // Environment block (NULL to inherit parent)
+ NULL, // Current directory (NULL to use the parent process's current directory)
+ &si, // Startup info
+ &pi // Process information
+ )) {
+ MessageBoxW(NULL, L"Failed to launch the script.", L"Launcher Error", MB_ICONERROR);
+ return 1;
+ }
+
+ // Wait for the script to finish
+ WaitForSingleObject(pi.hProcess, INFINITE);
+
+ // Cleanup
+ CloseHandle(pi.hProcess);
+ CloseHandle(pi.hThread);
+
+ return 0;
+}
diff --git a/portable/launchers_src_original/launcher_template_WINDOWS.cpp b/portable/launchers_src_original/launcher_template_WINDOWS.cpp
new file mode 100644
index 00000000..9c878be6
--- /dev/null
+++ b/portable/launchers_src_original/launcher_template_WINDOWS.cpp
@@ -0,0 +1,75 @@
+/*
+DataLab-WinPython launcher script
+---------------------------------
+
+Licensed under the terms of the BSD 3-Clause
+(see ./LICENSE for details)
+
+*/
+
+#include
+#include
+
+int WINAPI WinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int /*nShowCmd*/) {
+ // Get the path to the current executable
+ wchar_t exePath[MAX_PATH];
+ GetModuleFileNameW(NULL, exePath, MAX_PATH);
+
+ // Determine the directory of the executable
+ std::wstring exeDir = exePath;
+ exeDir = exeDir.substr(0, exeDir.find_last_of(L"\\/"));
+
+ // Define the path to the "scripts" directory
+ std::wstring scriptsDir = exeDir + L"\\scripts";
+
+ // Check if the "scripts" directory exists
+ DWORD attributes = GetFileAttributesW(scriptsDir.c_str());
+ if (attributes == INVALID_FILE_ATTRIBUTES || !(attributes & FILE_ATTRIBUTE_DIRECTORY)) {
+ MessageBoxW(NULL, L"The 'scripts' directory does not exist. Please ensure it is in the same folder as the launcher.",
+ L"Launcher Error", MB_ICONERROR);
+ return 1;
+ }
+
+ // Set the working directory to the "scripts" folder
+ if (!SetCurrentDirectoryW(scriptsDir.c_str())) {
+ MessageBoxW(NULL, L"Failed to set the working directory to 'scripts'.",
+ L"Launcher Error", MB_ICONERROR);
+ return 1;
+ }
+
+ // Define the command to run
+ std::wstring target = L"cmd.exe /c \"" LAUNCH_TARGET L"\"";
+
+ // Configure the process startup info
+ STARTUPINFO si = { sizeof(si) };
+ si.dwFlags = STARTF_USESHOWWINDOW; // Prevent the window from appearing
+ si.wShowWindow = SW_HIDE; // Hide the command window
+
+ PROCESS_INFORMATION pi = {};
+
+ // Start the process with CREATE_NO_WINDOW flag
+ if (!CreateProcessW(
+ NULL, // Application name (NULL because we pass the command in the command line)
+ &target[0], // Command line
+ NULL, // Process security attributes
+ NULL, // Thread security attributes
+ FALSE, // Inherit handles
+ CREATE_NO_WINDOW, // Flags to prevent creating a window
+ NULL, // Environment block (NULL to inherit parent)
+ NULL, // Current directory (NULL to use the parent process's current directory)
+ &si, // Startup info
+ &pi // Process information
+ )) {
+ MessageBoxW(NULL, L"Failed to launch the script.", L"Launcher Error", MB_ICONERROR);
+ return 1;
+ }
+
+ // Wait for the script to finish
+ WaitForSingleObject(pi.hProcess, INFINITE);
+
+ // Cleanup
+ CloseHandle(pi.hProcess);
+ CloseHandle(pi.hThread);
+
+ return 0;
+}
diff --git a/portable/scripts/make_winpython_fix.bat b/portable/scripts/make_winpython_fix.bat
deleted file mode 100644
index a0dddfa6..00000000
--- a/portable/scripts/make_winpython_fix.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-@echo off
-call "%~dp0env.bat"
-echo patch pip and current launchers for non-move
-
-"%WINPYDIR%\python.exe" -c "from winpython import wppm;dist=wppm.Distribution(r'%WINPYDIR%');dist.patch_standard_packages('pip', to_movable=False)"
-pause
\ No newline at end of file
diff --git a/portable/scripts/make_winpython_movable.bat b/portable/scripts/make_winpython_movable.bat
deleted file mode 100644
index 2ae903f8..00000000
--- a/portable/scripts/make_winpython_movable.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-@echo off
-call "%~dp0env.bat"
-echo patch pip and current launchers for move
-
-"%WINPYDIR%\python.exe" -c "from winpython import wppm;dist=wppm.Distribution(r'%WINPYDIR%');dist.patch_standard_packages('pip', to_movable=True)"
-pause
\ No newline at end of file
diff --git a/portable/scripts/register_python.bat b/portable/scripts/register_python.bat
deleted file mode 100644
index 0298a25f..00000000
--- a/portable/scripts/register_python.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-call "%~dp0env_for_icons.bat"
-"%WINPYDIR%\python.exe" "%WINPYDIR%\Lib\site-packages\winpython\associate.py"
diff --git a/portable/scripts/unregister_python.bat b/portable/scripts/unregister_python.bat
deleted file mode 100644
index 6b170231..00000000
--- a/portable/scripts/unregister_python.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-call "%~dp0env_for_icons.bat"
-"%WINPYDIR%\python.exe" "%WINPYDIR%\Lib\site-packages\winpython\associate.py" --unregister
diff --git a/portable/scripts/winqtconsole.bat b/portable/scripts/winqtconsole.bat
deleted file mode 100644
index c05e36fa..00000000
--- a/portable/scripts/winqtconsole.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo off
-call "%~dp0env_for_icons.bat" %*
-"%WINPYDIR%\scripts\jupyter-qtconsole.exe" %*
\ No newline at end of file
diff --git a/portable/scripts/wpcp.bat b/portable/scripts/wpcp.bat
index 769d4a4c..5edb982c 100644
--- a/portable/scripts/wpcp.bat
+++ b/portable/scripts/wpcp.bat
@@ -1,3 +1,3 @@
@echo off
call "%~dp0env_for_icons.bat" %*
-cmd.exe /k "echo wppm & wppm" %*
\ No newline at end of file
+cmd.exe /k "echo wppm & wppm %*"
\ No newline at end of file
diff --git a/winpython/__init__.py b/winpython/__init__.py
index 32bccb82..cac91627 100644
--- a/winpython/__init__.py
+++ b/winpython/__init__.py
@@ -28,6 +28,6 @@
OTHER DEALINGS IN THE SOFTWARE.
"""
-__version__ = '15.3.20250425'
+__version__ = '15.5620250513'
__license__ = __doc__
__project_url__ = 'http://winpython.github.io/'
diff --git a/winpython/utils.py b/winpython/utils.py
index 98a2b1f0..40961ec1 100644
--- a/winpython/utils.py
+++ b/winpython/utils.py
@@ -43,6 +43,26 @@ def get_site_packages_path(path=None):
pypy_site_packages = base_dir / 'site-packages' # For PyPy
return str(pypy_site_packages if pypy_site_packages.is_dir() else site_packages)
+def get_installed_tools_markdown(path=None)-> str:
+ """Generates Markdown for installed tools section in package index."""
+ tool_lines = []
+ python_exe = Path(get_python_executable(path))
+ version = exec_shell_cmd(f'powershell (Get-Item {python_exe}).VersionInfo.FileVersion', python_exe.parent).splitlines()[0]
+ tool_lines.append(f"[Python](http://www.python.org/) | {version} | Python programming language with standard library")
+ if (node_exe := python_exe.parent.parent / "n" / "node.exe").exists():
+ version = exec_shell_cmd(f'powershell (Get-Item {node_exe}).VersionInfo.FileVersion', node_exe.parent).splitlines()[0]
+ tool_lines.append(f"[Nodejs](https://nodejs.org) | {version} | a JavaScript runtime built on Chrome's V8 JavaScript engine")
+
+ if (pandoc_exe := python_exe.parent.parent / "t" / "pandoc.exe").exists():
+ version = exec_shell_cmd("pandoc -v", pandoc_exe.parent).splitlines()[0].split(" ")[-1]
+ tool_lines.append(f"[Pandoc](https://pandoc.org) | {version} | an universal document converter")
+
+ if (vscode_exe := python_exe.parent.parent / "t" / "VSCode" / "Code.exe").exists():
+ version = exec_shell_cmd(f'powershell (Get-Item {vscode_exe}).VersionInfo.FileVersion', vscode_exe.parent).splitlines()[0]
+ tool_lines.append(f"[VSCode](https://code.visualstudio.com) | {version} | a source-code editor developed by Microsoft")
+ return "\n".join(tool_lines)
+
+
def onerror(function, path, excinfo):
"""Error handler for `shutil.rmtree`."""
if not os.access(path, os.W_OK):
diff --git a/winpython/wheelhouse.py b/winpython/wheelhouse.py
new file mode 100644
index 00000000..b29f560e
--- /dev/null
+++ b/winpython/wheelhouse.py
@@ -0,0 +1,84 @@
+#
+# WheelHouse.py
+import sys
+from pathlib import Path
+from collections import defaultdict
+
+# Use tomllib if available (Python 3.11+), otherwise fall back to tomli
+try:
+ import tomllib # Python 3.11+
+except ImportError:
+ try:
+ import tomli as tomllib # For older Python versions
+ except ImportError:
+ print("Please install tomli for Python < 3.11: pip install tomli")
+ sys.exit(1)
+
+
+
+def parse_pylock_toml(path):
+ with open(Path(path), "rb") as f:
+ data = tomllib.load(f)
+
+ # This dictionary maps package names to (version, [hashes])
+ package_hashes = defaultdict(lambda: {"version": "", "hashes": []})
+
+ for entry in data.get("packages", []):
+ name = entry["name"]
+ version = entry["version"]
+ all_hashes = []
+
+ # Handle wheels
+ for wheel in entry.get("wheels", []):
+ sha256 = wheel.get("hashes", {}).get("sha256")
+ if sha256:
+ all_hashes.append(sha256)
+
+ # Handle sdist (if present)
+ sdist = entry.get("sdist")
+ if sdist and "hashes" in sdist:
+ sha256 = sdist["hashes"].get("sha256")
+ if sha256:
+ all_hashes.append(sha256)
+
+ package_hashes[name]["version"] = version
+ package_hashes[name]["hashes"].extend(all_hashes)
+
+ return package_hashes
+
+
+def write_requirements_txt(package_hashes, output_path="requirements.txt"):
+ with open(Path(output_path), "w") as f:
+ for name, data in sorted(package_hashes.items()):
+ version = data["version"]
+ hashes = data["hashes"]
+
+ if hashes:
+ f.write(f"{name}=={version} \\\n")
+ for i, h in enumerate(hashes):
+ end = " \\\n" if i < len(hashes) - 1 else "\n"
+ f.write(f" --hash=sha256:{h}{end}")
+ else:
+ f.write(f"{name}=={version}\n")
+
+ print(f"✅ requirements.txt written to {output_path}")
+
+def pylock_to_req(path, output_path=None):
+ pkgs = parse_pylock_toml(path)
+ if not output_path:
+ output_path = path.parent / (path.stem.replace('pylock','requirement_with_hash')+ '.txt')
+ write_requirements_txt(pkgs, output_path)
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print("Usage: python pylock_to_requirements.py pylock.toml")
+ sys.exit(1)
+
+ path = Path(sys.argv[1])
+ if not path.exists():
+ print(f"❌ File not found: {path}")
+ sys.exit(1)
+
+ pkgs = parse_pylock_toml(path)
+ dest = path.parent / (path.stem.replace('pylock','requirement_with_hash')+ '.txt')
+ write_requirements_txt(pkgs, dest)
diff --git a/winpython/wppm.py b/winpython/wppm.py
index 3989a3c5..659d14a4 100644
--- a/winpython/wppm.py
+++ b/winpython/wppm.py
@@ -45,22 +45,8 @@ def __init__(self, target: str = None, verbose: bool = False):
self.pip = None
self.to_be_removed = []
self.version, self.architecture = utils.get_python_infos(self.target)
- self.short_exe = Path(utils.get_python_executable(self.target)).name
-
- def clean_up(self):
- """Remove directories that were marked for removal."""
- for path in self.to_be_removed:
- try:
- shutil.rmtree(path, onexc=utils.onerror)
- except OSError as e:
- print(f"Error: Could not remove directory {path}: {e}", file=sys.stderr)
-
- def remove_directory(self, path: str):
- """Try to remove a directory, add to removal list on failure."""
- try:
- shutil.rmtree(path)
- except OSError:
- self.to_be_removed.append(path)
+ self.python_exe = utils.get_python_executable(self.target)
+ self.short_exe = Path(self.python_exe).name
def create_file(self, package, name, dstdir, contents):
"""Generate data file -- path is relative to distribution root dir"""
@@ -74,16 +60,20 @@ def create_file(self, package, name, dstdir, contents):
def get_installed_packages(self, update: bool = False) -> list[Package]:
"""Return installed packages."""
-
- # Include package installed via pip (not via WPPM)
if str(Path(sys.executable).parent) == self.target:
self.pip = piptree.PipData()
else:
self.pip = piptree.PipData(utils.get_python_executable(self.target))
- pip_list = self.pip.pip_list()
+ pip_list = self.pip.pip_list(full=True)
+ return [Package(f"{i[0].replace('-', '_').lower()}-{i[1]}-py3-none-any.whl", suggested_summary=i[2]) for i in pip_list]
- # return a list of package objects
- return [Package(f"{i[0].replace('-', '_').lower()}-{i[1]}-py3-none-any.whl") for i in pip_list]
+ def get_installed_packages_markdown(self) -> str:
+ """Generates Markdown for installed packages section in package index."""
+ package_lines = [
+ f"[{pkg.name}]({pkg.url}) | {pkg.version} | {pkg.description}"
+ for pkg in sorted(self.get_installed_packages(), key=lambda p: p.name.lower())
+ ]
+ return "\n".join(package_lines)
def find_package(self, name: str) -> Package | None:
"""Find installed package by name."""
@@ -235,81 +225,30 @@ def install_bdist_direct(self, package, install_options=None):
def main(test=False):
- registerWinPythonHelp = f"Register distribution: associate file extensions, icons and context menu with this WinPython"
- unregisterWinPythonHelp = f"Unregister distribution: de-associate file extensions, icons and context menu from this WinPython"
+ registerWinPythonHelp = f"Register WinPython: associate file extensions, icons and context menu with this WinPython"
+ unregisterWinPythonHelp = f"Unregister WinPython: de-associate file extensions, icons and context menu from this WinPython"
parser = ArgumentParser(
description="WinPython Package Manager: handle a WinPython Distribution and its packages",
formatter_class=RawTextHelpFormatter,
)
- parser.add_argument(
- "fname",
- metavar="package",
- nargs="?",
- default="",
- type=str,
- help="optional package name or package wheel",
- )
- parser.add_argument(
- "--register",
- dest="registerWinPython",
- action="store_true", # Store True when flag is present
- help=registerWinPythonHelp,
- )
- parser.add_argument(
- "--unregister",
- dest="unregisterWinPython",
- action="store_true",
- help=unregisterWinPythonHelp,
- )
- parser.add_argument(
- "-v", "--verbose",
- action="store_true",
- help="show more details on packages and actions",
- )
- parser.add_argument(
- "-ls", "--list",
- action="store_true",
- help="list installed packages matching the given [optional] package expression: wppm -ls, wppm -ls pand",
- )
- parser.add_argument(
- "-p",
- dest="pipdown",
- action="store_true",
- help="show Package dependencies of the given package[option]: wppm -p pandas[test]",
- )
- parser.add_argument(
- "-r",
- dest="pipup",
- action="store_true",
- help=f"show Reverse dependancies of the given package[option]: wppm -r pytest[test]",
- )
- parser.add_argument(
- "-l", "--levels",
- type=int,
- default=2,
- help="show 'LEVELS' levels of dependencies (with -p, -r), default is 2: wppm -p pandas -l1",
- )
- parser.add_argument(
- "-lsa",
- dest="all",
- action="store_true",
- help=f"list details of package names matching given regular expression: wppm -lsa pandas -l1",
- )
- parser.add_argument(
- "-t", "--target",
- default=sys.prefix,
- help=f'path to target Python distribution (default: "{sys.prefix}")',
- )
- parser.add_argument(
- "-i", "--install",
- action="store_true",
- help="install a given package wheel (use pip for more features)",
- )
- parser.add_argument(
- "-u", "--uninstall",
- action="store_true", # Store True when flag is present
- help="uninstall package (use pip for more features)",
- )
+ parser.add_argument("fname", metavar="package", nargs="?", default="", type=str, help="optional package name or package wheel")
+ parser.add_argument("-v", "--verbose", action="store_true", help="show more details on packages and actions")
+ parser.add_argument( "--register", dest="registerWinPython", action="store_true", help=registerWinPythonHelp)
+ # parser.add_argument( "--register_forall", action="store_true", help="Register distribution for all users")
+ parser.add_argument("--unregister", dest="unregisterWinPython", action="store_true", help=unregisterWinPythonHelp)
+ # parser.add_argument( "--unregister_forall", action="store_true", help="un-Register distribution for all users")
+ parser.add_argument("--fix", action="store_true", help="make WinPython fix")
+ parser.add_argument("--movable", action="store_true", help="make WinPython movable")
+ parser.add_argument("-ls", "--list", action="store_true", help="list installed packages matching the given [optional] package expression: wppm -ls, wppm -ls pand")
+ parser.add_argument("-lsa", dest="all", action="store_true",help=f"list details of package names matching given regular expression: wppm -lsa pandas -l1")
+ parser.add_argument("-p",dest="pipdown",action="store_true",help="show Package dependencies of the given package[option]: wppm -p pandas[test]")
+ parser.add_argument("-r", dest="pipup", action="store_true", help=f"show Reverse dependancies of the given package[option]: wppm -r pytest[test]")
+ parser.add_argument("-l", "--levels", type=int, default=2, help="show 'LEVELS' levels of dependencies (with -p, -r), default is 2: wppm -p pandas -l1")
+ parser.add_argument("-t", "--target", default=sys.prefix, help=f'path to target Python distribution (default: "{sys.prefix}")')
+ parser.add_argument("-i", "--install", action="store_true", help="install a given package wheel (use pip for more features)")
+ parser.add_argument("-u", "--uninstall", action="store_true", help="uninstall package (use pip for more features)")
+
+
args = parser.parse_args()
targetpython = None
if args.target and args.target != sys.prefix:
@@ -373,26 +312,35 @@ def main(test=False):
if theAnswer == "Y":
associate.unregister(dist.target, verbose=args.verbose)
sys.exit()
- elif not args.install and not args.uninstall:
- args.install = True
- if not Path(args.fname).is_file() and args.install:
- if args.fname == "":
- parser.print_help()
- sys.exit()
- else:
- raise FileNotFoundError(f"File not found: {args.fname}")
if utils.is_python_distribution(args.target):
dist = Distribution(args.target, verbose=True)
- try:
- if args.uninstall:
- package = dist.find_package(args.fname)
- dist.uninstall(package)
+ cmd_fix = rf"from winpython import wppm;dist=wppm.Distribution(r'{dist.target}');dist.patch_standard_packages('pip', to_movable=False)"
+ cmd_mov = rf"from winpython import wppm;dist=wppm.Distribution(r'{dist.target}');dist.patch_standard_packages('pip', to_movable=True)"
+ if args.fix:
+ # dist.patch_standard_packages('pip', to_movable=False) # would fail on wppm.exe
+ p = subprocess.Popen(["start", "cmd", "/k",dist.python_exe, "-c" , cmd_fix], shell = True, cwd=dist.target)
+ sys.exit()
+ if args.movable:
+ p = subprocess.Popen(["start", "cmd", "/k",dist.python_exe, "-c" , cmd_mov], shell = True, cwd=dist.target)
+ sys.exit()
+ if not args.install and not args.uninstall:
+ args.install = True
+ if not Path(args.fname).is_file() and args.install:
+ if args.fname == "":
+ parser.print_help()
+ sys.exit()
else:
- package = Package(args.fname)
- if args.install:
- dist.install(package)
- except NotImplementedError:
- raise RuntimeError("Package is not (yet) supported by WPPM")
+ raise FileNotFoundError(f"File not found: {args.fname}")
+ try:
+ if args.uninstall:
+ package = dist.find_package(args.fname)
+ dist.uninstall(package)
+ elif args.install:
+ package = Package(args.fname)
+ if args.install:
+ dist.install(package)
+ except NotImplementedError:
+ raise RuntimeError("Package is not (yet) supported by WPPM")
else:
raise OSError(f"Invalid Python distribution {args.target}")