Skip to main content

Mat3ra Regex.

Project description

regex

Usage

  1. 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

  1. Import package:

    import regexSchemas from "@exabyte-io/regex/lib/schemas";
    
  2. 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

  1. Add new yamls for stdin and stdout to assets/file/applications/<application_name>/<application_version>/<unit_name>/
  2. Run npm run build:schemas:dev to generate new regex schemas for dev
  3. Add tests for newly added regex schemas

Usage

  1. Install dependency (list in package.json ar with npm install):
npm install @exabyte-io/regex
  1. Import schema.json with compiled regexes in your code:
import regexesSchema from "@exabyte-io/regex/data/schemas.json"
  1. Use regexesSchema object to found needed regex based on application and version for example (you can use json-pointer to 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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mat3ra_regex-2026.7.4.post0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

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

Hashes for mat3ra_regex-2026.7.4.post0.tar.gz
Algorithm Hash digest
SHA256 e5432c531b14e4f75f06a5d94a3a1bedeae63fb0066bdc6df252056cf5cba82d
MD5 1f1b825b0d143a1fc5caa4cd33d859e1
BLAKE2b-256 d7e13c5f3b10d9a428e594df0978c3060663b077897429c2c863de713716feae

See more details on using hashes here.

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

Hashes for mat3ra_regex-2026.7.4.post0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a8459179d98183cf75af495215b351c494c74effea9396d4a9ab6c0a701e6a4
MD5 fce6e9e5bdb84af45a7be3c9509e2aef
BLAKE2b-256 de7dec5c4173eaca08e7c91a741dfb20a2a6c15d8b3e696d89d5e24ac3aa25aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page