Mat3ra Regex.
Project description
regex
Usage
- Install package adding to package.json:
"dependencies": { "@exabyte-io/regex": "2023.9.1" }
Or using npm:
bash npm i @exabyte-io/regex@2023.9.1
-
Import package:
import regexSchemas from "@exabyte-io/regex/lib/schemas";
-
Use regex schemas:
const calculationPattern = regexSchemas.espresso["5.2.1"]["pw.x"]["stdin"].calculation; const regex = new RegExp(calculationPattern.regex, calculationPattern.flags.join("));
Development
To run tests:
npm test
To run lint:
npm run lint
To build regex schemas for development:
npm run build:schemas:dev
Add new regex schemas
- Add new yamls for
stdinandstdouttoassets/file/applications/<application_name>/<application_version>/<unit_name>/ - Run
npm run build:schemas:devto generate new regex schemas for dev - Add tests for newly added regex schemas
Usage
- Install dependency (list in
package.jsonar withnpm install):
npm install @exabyte-io/regex
- Import
schema.jsonwith compiled regexes in your code:
import regexesSchema from "@exabyte-io/regex/data/schemas.json"
- Use
regexesSchemaobject to found needed regex based on application and version for example (you can usejson-pointerto get needed path):
import pointer from "json-pointer";
const espressoNamelistRegex = pointer.get(
schemas,
"/applications/espresso/5.2.1/pw.x/stdin/control/_format",
);
// _format contains regex with template string
// available templates for regex should be enumerated in params section
// name of param define template string to replace
// possible values will be enumerated as value of param
// "params":{"BLOCK_NAME":["CONTROL","ELECTRONS","IONS","CELL","SYSTEM"]}
const controlBlockRegex = new RegExp(
espressoNamelistRegex.regex.replace('{{BLOCK_NAME}}', 'CONTROL'),
espressoNamelistRegex.flags.join(""),
);
// getting namelist blocks
const controlBlocksMatch = file.match(controlBlockRegex);
const controlBlock = controlBlocksMatch[0];
const regexObject = pointer.get(
schemas,
"/applications/espresso/5.2.1/pw.x/stdin/control/calculation",
);
const regexCalculation = new RegExp(
regexObject.regex,
regexObject.flags.join(""),
);
// getting calculation param value
const calculation = controlBlock.matchAll(regexCalculation);
const [calcluationLine, calculationValue] = Array.from(calculation)[0];
console.log({ calcluationLine, calculationValue })
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mat3ra_regex-2026.7.4.post0.tar.gz
(118.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mat3ra_regex-2026.7.4.post0.tar.gz.
File metadata
- Download URL: mat3ra_regex-2026.7.4.post0.tar.gz
- Upload date:
- Size: 118.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/9.0.0 pkginfo/1.12.1.2 requests/2.34.2 requests-toolbelt/1.0.0 tqdm/4.68.3 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5432c531b14e4f75f06a5d94a3a1bedeae63fb0066bdc6df252056cf5cba82d
|
|
| MD5 |
1f1b825b0d143a1fc5caa4cd33d859e1
|
|
| BLAKE2b-256 |
d7e13c5f3b10d9a428e594df0978c3060663b077897429c2c863de713716feae
|
File details
Details for the file mat3ra_regex-2026.7.4.post0-py3-none-any.whl.
File metadata
- Download URL: mat3ra_regex-2026.7.4.post0-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/9.0.0 pkginfo/1.12.1.2 requests/2.34.2 requests-toolbelt/1.0.0 tqdm/4.68.3 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a8459179d98183cf75af495215b351c494c74effea9396d4a9ab6c0a701e6a4
|
|
| MD5 |
fce6e9e5bdb84af45a7be3c9509e2aef
|
|
| BLAKE2b-256 |
de7dec5c4173eaca08e7c91a741dfb20a2a6c15d8b3e696d89d5e24ac3aa25aa
|