Skip to content
View codeofwxz's full-sized avatar

Block or report codeofwxz

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
codeofwxz/README.md

Software development, automation & data processing

Focused scripts and small fixes for repetitive work: CSV cleanup, JSON conversion, file inventories, and reproducible checks.

For a project inquiry, share a redacted input sample, the expected output, approximate data size, operating system, and deadline. Scope, price, delivery time, and acceptance checks are agreed before implementation.

Discuss a project on Contra · Browse the source examples

Open-source contributions

  • Merged — python-markdown2 #724: Reduced repeated full-text scans during Markdown token expansion while preserving nested content. Added regression coverage and a reproducible benchmark.
  • Merged — pyexcel #314: Fixed rendering of timedelta values in Sheet string output.
  • Awaiting upstream review — dataclass-wizard #257: Added focused environment-name compatibility with regression coverage for lookup precedence, aliases and prefixes. The latest test-only update adds three empty-value precedence cases; all 80 environment tests pass on Python 3.12 and 3.14. This is targeted test coverage, not a full-suite or hosted CI result.

Three runnable examples

These are self-directed demonstrations using synthetic data, not paid client projects. Each includes source code, sample files, CLI tests, and documented limits. The linked repository retains the implementation and testing provenance.

Example Input → output How to check the result
CSV cleanup A three-column CSV → normalized rows plus a rejection report for missing or duplicate IDs. Email domains are lowercased; local-part casing is preserved. The bundled example accepts 3 rows and rejects 2. Compare both files with the supplied expected CSVs.
JSONL order export Nested orders → one CSV row per item, with validated quantities and exact decimal line totals. The bundled example produces 3 item rows matching expected.csv. Invalid input reports its physical line.
File inventory A directory → a sorted manifest of paths, sizes, and SHA256 hashes; verification → added, missing, and changed files. The baseline matches samples/before. Comparing samples/after reports added.txt, removed.txt, and notes.txt in the respective categories.

Run and verify

Use Python 3.10+ and Git. The examples use only Python's standard library. Clone into a new directory:

git clone https://github.com/codeofwxz/automation-portfolio-demos.git
cd automation-portfolio-demos

Then run each example from its own folder:

cd csv-cleanup
python cleanup.py examples/input.csv
python -B -m unittest -v
cd ../json-export
python export_orders.py demo.jsonl demo-output.csv
python -B -m unittest -v
cd ../file-manifest
python manifest.py create samples/before example-manifest.json
python manifest.py verify samples/before example-manifest.json
python manifest.py verify samples/after example-manifest.json
python -B -m unittest -v

The final verify command deliberately returns exit code 1 because the sample directory differs; matching verification returns 0. Existing output files are refused, so choose new output filenames when repeating the examples. The JSON exporter requires a filesystem that supports hard links, such as local NTFS.

The three suites define 15 tests. On the checked Windows environment, 14 passed and the symlink-creation test was explicitly skipped because the OS did not permit it. The README in each folder explains its checks and limitations: email normalization does not verify deliverability; the exporter does not calculate tax or convert currencies; a file manifest is not a backup or an atomic snapshot.

What a scoped delivery includes

  • Source code and practical setup/usage instructions.
  • Checks against agreed input/output examples, including relevant failure cases.
  • A concise handover covering supported inputs, known limitations, and how to rerun verification.

Start with a small, testable task. Use synthetic or redacted samples for the initial discussion; keep credentials and private customer records out of public issues.

Popular repositories Loading

  1. spark-x25-observation-protocols spark-x25-observation-protocols Public

    Reproducible 32-case bilingual conditional-probability diagnostic of Spark-X2.5-1.7B, with complete raw outputs and AI-disclosed audit

    Python

  2. automation-portfolio-demos automation-portfolio-demos Public

    Three self-directed AI-assisted Python automation demos with synthetic data and CLI tests

    Python

  3. codeofwxz codeofwxz Public

    Software development, automation and data-processing examples

  4. petl petl Public

    Forked from petl-developers/petl

    Python Extract Transform and Load Tables of Data

    Python

  5. csv-diff csv-diff Public

    Forked from simonw/csv-diff

    Python CLI tool and library for diffing CSV and JSON files

    Python

  6. csv-parser csv-parser Public

    Forked from mafintosh/csv-parser

    Streaming csv parser inspired by binary-csv that aims to be faster than everyone else

    JavaScript