semvec/pypi-packages huggingface dataset:
charscope 0.1.0
Character analysis and visualization tool for ASCII and UTF-8 text.
License: MIT
Requires Python: >=3.7

# CharScope

**CharScope** is a Python library that analyzes, visualizes, and reports character-level statistics from any input string using UTF-8 and ASCII encoding. It combines colorful CLI visualization with powerful statistical and graphical tools like matplotlib and numpy.

---

## 🎯 Features

- Detects and separates ASCII vs UTF-8 characters
- Visualizes character code distribution using histograms
- Displays encoding ratio with pie charts
- Computes entropy of character usage
- Shows Unicode name and code point of each character
- Colorful CLI outputs using `colorama`
- ASCII banner using `pyfiglet`
- Filters printable vs non-printable characters
- Displays UTF-8 byte values and their uniqueness
- Summary and stats output

---

## 📦 Installation

```bash
pip install charscope

Or from source:

git clone https://github.com/yourname/CharScope.git
cd CharScope
pip install .

🚀 Example Usage

from chars.core import analyze_text, summary, print_banner

text = "Hello 世界! Python 🐍 ASCII & UTF-8 ❤️🧠"
print_banner()
analyze_text(text)
summary(text)

This will display:

A cool ASCII title banner

Colorful statistics in the terminal

Character breakdown (name, code point, encoding type)

UTF-8 byte stats

Pie chart and histogram pop-ups 

📊 Visual Output
Pie chart showing ASCII vs UTF-8 ratio

Histogram showing character distribution

Textual entropy value (in bits per character)

📌 Requirements
Python 3.7+

numpy

matplotlib

colorama

pyfiglet

All dependencies are listed in requirements.txt.

🔧 10 Feature Ideas for Future Versions
Export analysis result to JSON or CSV

Command-line interface (CLI) for shell usage

Support for file input (e.g. .txt, .md)

Highlight common non-ASCII symbols (like emojis, CJK, etc.)

Add color heatmap to histogram

Analyze frequency of bigrams and trigrams

Detect encoding anomalies or byte corruption

Interactive mode for stepping through character info

Add language detection using Unicode ranges

Web-based viewer (using Flask or Streamlit)

📄 License
MIT License

🤝 Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change or improve.

🙌 Author
Created by [Eden Simamora]
sosia 1.0.2
Find control groups for academics in Scopus
License: MIT
Keywords: sosia, control groups, research

sosia
=====

Match authors automatically in Scopus on-line

Documentation: https://sosia.readthedocs.io

Development: https://github.com/sosia-dev/sosia

.. image:: https://badge.fury.io/py/sosia.svg
    :target: https://badge.fury.io/py/sosia

.. image:: https://readthedocs.org/projects/sosia/badge/?version=latest
    :target: https://readthedocs.org/projects/sosia/badge/?version=latest

.. image:: https://img.shields.io/pypi/pyversions/sosia.svg
    :target: https://img.shields.io/pypi/pyversions/sosia.svg

.. image:: https://img.shields.io/pypi/l/sosia.svg
    :target: https://img.shields.io/pypi/l/sosia.svg

.. image:: https://api.codeclimate.com/v1/badges/3e10a47fefae831b973a/maintainability
   :target: https://codeclimate.com/github/sosia-dev/sosia/maintainability

Installation
============

Install stable version from PyPI:

.. code:: bash

    pip install sosia

or development version from GitHub repository:

.. code:: bash

    pip install git+https://github.com/sosia-dev/sosia

Functioning
===========

sosia performs a series of queries in the Scopus database using the `pybliometrics package 
<http://pybliometrics.readthedocs.io/>`_.  After configuring your local pybliometrics (providing access credentials and eventually setting cache directories), you are ready to use sosia:

.. inclusion-marker-start
.. code-block:: python

    >>> import sosia
    >>> 
    >>> # You need the Scopus ID and the year, optionally set a database path
    >>> stefano = sosia.Original(55208373700, 2018)
    >>> # Sources similiar to those stefano publishes in
    >>> stefano.define_search_sources()
    >>> # Authors publishing in search sources every 2 years
    >>> stefano.identify_candidates_from_sources(first_year_margin=1,
    >>>                                          frequency=2)
    >>> # Find candidates whose characteristics fall within margins
    >>> stefano.filter_candidates(same_discipline=True, pub_margin=0.2,
    >>>                           first_year_margin=1, cits_margin=0.2,
    >>>                           coauth_margin=0.15)
    >>> print(stefano.matches)
    >>> [55567912500]
    >>> # Optional step to provide additional information
    >>> stefano.inform_matches()
    >>> print(stefano.matches[0])
    Match(ID=55567912500, name='Eling, Katrin', first_name='Katrin',
          surname='Eling', first_year=2013, last_year=2018, num_coauthors=9,
          num_publications=8, num_citations=56, subjects=['BUSI', 'COMP', 'ENGI'],
          affiliation_country='Netherlands', affiliation_id='60032882',
          affiliation_name='Technische Universiteit Eindhoven',
          affiliation_type='univ', language='eng', num_cited_refs=0)

.. inclusion-marker-end

Change log
==========

Please see `CHANGES.rst <./meta/CHANGES.rst>`_.

Contributing
============

Please see `CONTRIBUTING.rst <CONTRIBUTING.rst>`_.  For the list of contributors see
`AUTHORS.rst <./meta/AUTHORS.rst>`_.

License
=======

MIT License; see `LICENSE <LICENSE>`_.