semvec/pypi-packages huggingface dataset:
plockalyser 0.0.1
Utility for performing rudimentary analysis on npm package dependencies from an npm lock file.
License: MIT
Requires Python: >=3.13

# plockalyser

*"package lock analyser"*

Utility for performing rudimentary analysis on npm package dependencies from an
npm lock file.

## Prepare data

Get data from `package-lock.json` in your project:

```shell
npm ls --all --json > npm_ls.json
```

or if you want to exclude the dev dependencies:

```shell
npm ls --all --omit-dev --json > npm_ls_nodev.json
```

Copy the file to the `plockalyser` directory.

## Running

### Bootstrap

`plockalyser` uses [uv](https://github.com/astral-sh/uv) for managing
dependencies; it can be installed e.g. with `pipx install uv`. Regular `pip`
might also work, but YMMV.

Setting up:

```shell
uv sync
```

Command line arguments:
```shell
./plockalyser.py --help
```

Produce Markdown tables with some basic data, output to stdout:
```shell
./plockalyser.py npm_ls.json --tables
```

The tables are suitable for processing with [Pandoc](https://pandoc.org/), and
are marked up for inclusion using the
[pandoc-include](https://github.com/DCsunset/pandoc-include) filter (optional).
Run `pipx install pandoc-include` if you want to install the filter.

The tables also have line numbers in LaTeX margin notes. Add the following
somewhere in your LaTeX setup (e.g. in a file included with `pandoc -H`):

```latex
% Margin notes
\usepackage{marginnote}
\renewcommand{\marginpar}{\marginnote}
\reversemarginpar % Moves margin notes to the left margin
\usepackage{ragged2e} % Allows right-aligned text
```

## Bygg

The project includes a set of targets for the [Bygg build system](https://github.com/rikardg/bygg).
Here, it is only used as a simple taskrunner with some rudimentary dependency
management.

To install:
```shell
pipx install bygg
```

To run:
```shell
bygg
```
builds the default target. See `Byggfile.toml` for what the default target is
and the other actions that are available.
xmltree 0.1.1
Full file(content) tree → XML
License: MIT
Requires Python: >=3.12
Keywords: converter, directory, filesystem, serialization, tree, xml

# xmltree

Full file(content) tree → XML

## Installation

```bash
# Install globally with uv (recommended)
uv tool install xmltree

# Or use directly without installing
uvx xmltree

# Or install with pipx
pipx install xmltree
```


## Usage

```bash
# Convert current directory
xmltree

# Convert specific directory
xmltree /path/to/project

# Save to file
xmltree -o project.xml

# Only include specific file types
xmltree -I "*.py" -I "*.md"

# Exclude additional patterns  
xmltree -i "*.log" -i "temp/*"

# Show absolute paths
xmltree --full-paths

# Compact output
xmltree --compact
```

## Example

Given a project structure:
```
example_project/
├── src/
│   ├── __init__.py
│   ├── main.py
│   └── utils/
│       └── helpers.py
├── tests/
│   └── test_main.py
├── .gitignore
├── README.md
└── pyproject.toml
```

Running `xmltree example_project` produces:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<directory path="example_project">
  <directory path="src">
    <file path="src/__init__.py">
      <content><![CDATA[
"""Example package."""

__version__ = "0.1.0"]]></content>
    </file>
    <!-- ... more files ... -->
  </directory>
  <file path="README.md">
    <content><![CDATA[
# Example Project

This is a sample project to demonstrate xmltree.]]></content>
  </file>
</directory>
```

## Features

- Converts directory structures to well-formed XML
- Respects `.gitignore` files by default
- Supports custom ignore and include patterns
- Pretty-printed output by default
- File contents wrapped in CDATA sections
- Pipe-friendly for use with other tools

## Why XML?

XML's explicit closing tags make structure unambiguous, unlike YAML's error-prone indentation. 
File contents can be wrapped in CDATA sections preserving exact formatting, while JSON would require escaping every quote and newline.