tag:github.com,2008:https://github.com/DefinetlyNotAI/PyCTools/releases Release notes from PyCTools 2025-08-16T23:05:24Z tag:github.com,2008:Repository/1033884389/0.3.0-beta 2025-08-16T23:16:59Z v0.3.0-beta <h1><strong>pyCTools Release - Ultimate Rework of RNG</strong></h1> <hr> <h3>Installation of v0.3.0-beta</h3> <p>Here is the pip command:</p> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="pip install https://github.com/DefinetlyNotAI/PyCTools/releases/download/0.3.0-beta/pyctools-0.3.0b0-py3-none-any.whl "><pre class="notranslate"><code>pip install https://github.com/DefinetlyNotAI/PyCTools/releases/download/0.3.0-beta/pyctools-0.3.0b0-py3-none-any.whl </code></pre></div> <hr> <h1>PyCTools v0.3.0-beta</h1> <h2>Core Enhancements</h2> <ul> <li>Implemented configurable RNG with advanced entropy sources and output options. Fully upgraded for stronger randomness and security.</li> <li>Introduced advanced RNG configuration methods for custom random data generation.</li> <li><code>hRng.c</code> now integrates audio-based entropy, with timing-based fallback for robust RNG behaviour.</li> <li>Fully reworked <code>hRng</code> in both <code>C</code> and <code>Python Lib Wrappers</code></li> <li>Improved <code>processInspect</code> with new feature that is sessions, which allows a sort of constant data update pipeline with custom intervals all <code>C</code> native</li> </ul> <h2>Metrics &amp; Monitoring</h2> <ul> <li>Added metrics monitoring functionality with call-back support.</li> <li>Provides stable streams of data at configurable intervals for a set duration or until explicitly stopped.</li> <li>Updated C implementation, Python library wrapper, and example scripts for seamless usage.</li> </ul> <h2>Tooling &amp; Scripts</h2> <ul> <li>Refactored <code>compilerHelper.ps1</code> to restrict <code>.c</code> file searches to <code>../src</code> only, and improved error messages.</li> <li>Enhanced <code>compilerHelper.ps1</code> to support auto-accept and command-line file selection for compilation.</li> <li>Updated <code>distributionHelper.ps1</code> to revert back to the tool directory after execution (QoL).</li> </ul> <h2>Documentation &amp; Examples</h2> <ul> <li>Re-introduced the example directory for clarity and testing.</li> <li>Updated PyCTools package documentation workflow via the wiki, simplifying future doc updates.</li> <li>Wiki fully updated to reflect current features.</li> </ul> <h2>Miscellaneous</h2> <ul> <li>Added issue templates and refreshed TODO list.</li> <li>Noted version bump to <code>0.3.0-beta</code> in <code>__init__.py</code>.</li> <li>Updated <code>SECURITY.md</code> for project compliance.</li> </ul> <hr> <div class="markdown-alert markdown-alert-important"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-report mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Important</p> <h2>Attached will be a ZIP file that contains the built DLL's required by the python scripts,</h2> <p>YOU MUST keep the DLL structure the same: <code>dist/{architecture_type}/{name}_{architecture_type}.dll</code></p> <p>You will still find the other generated files if you want to play around with them, attached is also the ZIP's hash if you want to check the validity</p> <p>This supports Windows - both the <code>x86</code> (32-bit) and <code>x64</code> (64-bit) architecture, and the python wrappers also auto-detect the required architecture to use for your system, so as long as the dist is available, all is good</p> <p>You can place the <code>dist</code> folder in the same directory as the Python library.</p> </div> <div class="markdown-alert markdown-alert-tip"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-light-bulb mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></svg>Tip</p><p>You can also just run the <a href="https://github.com/DefinetlyNotAI/PyCTools/blob/main/tool/compilerHelper.ps1"><code>tool/compilerHelper.ps1</code></a> tool where as long as you have the <code>cl.exe</code> from Microsoft Visual Studio <code>MSVC</code> toolchain.</p> <p>You can just check the source code of the <code>ps1</code> tool for the paths it checks for the files!</p> </div> <hr> <table> <thead> <tr> <th>File Name</th> <th>Description</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>dist.zip</code></td> <td>Compressed archive containing required binaries</td> <td>Uses ZIP compression. Contains all DLLs needed for the Python wrapper</td> </tr> <tr> <td><code>dist.zip.sha256</code></td> <td>SHA-256 hash file for verifying <code>dist.zip</code> integrity</td> <td>Ensure file hasn't been tampered with or corrupted</td> </tr> <tr> <td><code>pyctools-0.3.0b0-py3-none-any.whl</code></td> <td>WHL File for pip to install the library</td> <td>Allows easy pip installation</td> </tr> </tbody> </table> <hr> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/DefinetlyNotAI/PyCTools/compare/0.2.1-beta...0.3.0-beta"><tt>0.2.1-beta...0.3.0-beta</tt></a></p> DefinetlyNotAI tag:github.com,2008:Repository/1033884389/0.2.1-beta 2025-08-13T14:08:33Z v0.2.1-beta <hr> <h1><strong>pyCTools Release - v0.2.1</strong></h1> <hr> <h3>Installation of v0.2.1</h3> <p>Here is the pip command:</p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="pip install https://github.com/DefinetlyNotAI/PyCTools/releases/download/0.2.1-beta/pyctools-0.2.1b0-py3-none-any.whl"><pre>pip install https://github.com/DefinetlyNotAI/PyCTools/releases/download/0.2.1-beta/pyctools-0.2.1b0-py3-none-any.whl</pre></div> <hr> <p>This release addresses accidental inclusion of <code>__pycache__</code> in the main branch, adds minor quality-of-life improvements, and continues refactoring setup and distribution processes for better reliability and user experience.</p> <p><strong>Highlights:</strong></p> <ul> <li><strong>Pycache Cleanup:</strong> Re-added from git history and removed accidental <code>__pycache__</code> files; minor QoL improvements.</li> <li><strong>Contribution Guidelines:</strong> Added <code>CONTRIBUTING.md</code> to provide clear project contribution instructions.</li> <li><strong>Setup Refactor:</strong> Streamlined <code>setup.py</code>, implemented proper cleanup in <code>bdist_wheel</code> command, and improved error handling.</li> <li><strong>Distribution Updates:</strong> Updated <code>distributionHelper.ps1</code> and <code>.gitignore</code> to ensure consistent binary packaging and Windows support.</li> <li><strong>Documentation Improvements:</strong> README.md enhanced with installation instructions, wheel creation steps, and project structure details.</li> </ul> <p>Additional minor updates include removal of example files (now documented in Wiki), restricting package usage to Windows, refactoring DLL loading logic, and updating entropy test results after critical bug fixes.</p> <div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>This update has not changed how the library works, but rather QoL changes to documentation, and the developer experience</p> </div> <hr> <div class="markdown-alert markdown-alert-important"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-report mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Important</p> <h2>Attached will be a ZIP file that contains the built DLL's required by the python scripts,</h2> <p>YOU MUST keep the DLL structure the same: dist/{architecture_type}/{name}_{architecture_type}.dll</p> <p>You will still find the other generated files if you want to play around with them, attached is also the ZIP's hash if you want to check the validity</p> <p>This supports Windows - both the x86 (32-bit) and x64 (64-bit) architecture, and the python wrappers also auto-detect the required architecture to use for your system, so as long as the dist is available, all is good</p> <p>You can place the dist folder in the same directory as the Python library.</p> </div> <div class="markdown-alert markdown-alert-tip"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-light-bulb mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></svg>Tip</p><p>You can also just run the <a href="https://github.com/DefinetlyNotAI/PyCTools/blob/main/tool/compilerHelper.ps1">tool/compilerHelper.ps1</a> tool where as long as you have the cl.exe from Microsoft Visual Studio MSVC toolchain.</p> <p>You can just check the source code of the ps1 tool for the paths it checks for the files!</p> </div> <hr> <table> <thead> <tr> <th>File Name</th> <th>Description</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>dist.zip</code></td> <td>Compressed archive containing required binaries</td> <td>Uses ZIP compression. Contains all DLLs needed for the Python wrapper</td> </tr> <tr> <td><code>dist.zip.sha256</code></td> <td>SHA-256 hash file for verifying <code>dist.zip</code> integrity</td> <td>Ensure file hasn't been tampered with or corrupted</td> </tr> <tr> <td><code>pyctools-0.2.1b0-py3-none-any.whl</code></td> <td>WHL File for pip to install the library</td> <td>Allows easy pip installation</td> </tr> </tbody> </table> <hr> <p><strong>Full Changelog</strong>: <a href="https://github.com/DefinetlyNotAI/PyCTools/commits/0.2.1-beta">https://github.com/DefinetlyNotAI/PyCTools/commits/0.2.1-beta</a></p> DefinetlyNotAI tag:github.com,2008:Repository/1033884389/0.2.0-beta 2025-08-11T21:39:08Z v0.2.0-beta <h1><strong>pyCTools Release - Major Update</strong></h1> <hr> <h3>Installation of v0.2.0-beta</h3> <p>Here is the pip command:</p> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="pip install https://github.com/DefinetlyNotAI/PyCTools/releases/download/0.2.0-beta/pyctools-0.2.0b0-py3-none-any.whl"><pre class="notranslate"><code>pip install https://github.com/DefinetlyNotAI/PyCTools/releases/download/0.2.0-beta/pyctools-0.2.0b0-py3-none-any.whl </code></pre></div> <hr> <p>This release marks a significant milestone for pyCTools, transforming it into a fully functional, easy-to-install Python library with robust features and improved security.</p> <p><strong>Highlights:</strong></p> <ul> <li><strong>Installation Made Simple:</strong> Added comprehensive installation instructions and a new <code>setup.py</code> that supports version prompting, DLL checks, and seamless pip installation.</li> <li><strong>Windows-Only Support:</strong> The package now explicitly restricts usage to Windows OS for stability and compatibility.</li> <li><strong>Security Fixes:</strong> Fixed a critical RNG security vulnerability where the random buffer was incorrectly soft-clamped to 32 bytes, preventing dangerous repeating patterns. Added <code>SECURITY.md</code> for vulnerability reporting.</li> <li><strong>Enhanced RNG Functionality:</strong> Implemented unique random byte generation for large buffers with multi-threaded RNG sampling and detailed analysis showing promising results.</li> <li><strong>Code Refactoring &amp; Cleanup:</strong> Improved DLL loading logic, moved binary files for better packaging, enhanced error handling, and optimized both Python and C code for efficiency and readability.</li> <li><strong>Documentation &amp; Examples:</strong> Updated README with clear build instructions, added thorough docstrings, and provided comprehensive examples showcasing MaxRNG and process metrics features.</li> <li><strong>Project Structure Improvements:</strong> Introduced <code>__init__.py</code> for proper package setup, refactored imports, and simplified DLL entry points.</li> <li><strong>Additional Resources:</strong> Added <code>CODE_OF_CONDUCT.md</code>, <code>TODO.md</code>, and <code>.gitattributes</code> to mark generated test files.</li> </ul> <p>This release prepares pyCTools for broader adoption, ensuring stability, security, and ease of use. Thank you to everyone who contributed!</p> <hr> <div class="markdown-alert markdown-alert-important"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-report mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Important</p> <h2>Attached will be a ZIP file that contains the built DLL's required by the python scripts,</h2> <p>YOU MUST keep the DLL structure the same: <code>dist/{architecture_type}/{name}_{architecture_type}.dll</code></p> <p>You will still find the other generated files if you want to play around with them, attached is also the ZIP's hash if you want to check the validity</p> <p>This supports Windows - both the <code>x86</code> (32-bit) and <code>x64</code> (64-bit) architecture, and the python wrappers also auto-detect the required architecture to use for your system, so as long as the dist is available, all is good</p> <p>You can place the <code>dist</code> folder in the same directory as the Python library.</p> </div> <div class="markdown-alert markdown-alert-tip"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-light-bulb mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></svg>Tip</p><p>You can also just run the <a href="https://github.com/DefinetlyNotAI/PyCTools/blob/main/tool/compilerHelper.ps1"><code>tool/compilerHelper.ps1</code></a> tool where as long as you have the <code>cl.exe</code> from Microsoft Visual Studio <code>MSVC</code> toolchain.</p> <p>You can just check the source code of the <code>ps1</code> tool for the paths it checks for the files!</p> </div> <hr> <table> <thead> <tr> <th>File Name</th> <th>Description</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>dist.zip</code></td> <td>Compressed archive containing required binaries as mentioned above</td> <td>Uses ZIP compression. Contains all DLLs needed for the Python wrapper</td> </tr> <tr> <td><code>dist.zip.sha256</code></td> <td>SHA-256 hash file for verifying <code>dist.zip</code> integrity</td> <td>Ensure file hasn't been tampered with or corrupted</td> </tr> <tr> <td><code>pyctools-0.2.0b0-py3-none-any.whl</code></td> <td>WHL File for pip to install the library</td> <td>Allows easy pip installation</td> </tr> </tbody> </table> <hr> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/DefinetlyNotAI/PyCTools/compare/v0.1.0...0.2.0-beta"><tt>v0.1.0...0.2.0-beta</tt></a></p> DefinetlyNotAI