Skip to main content

Melina can convert meta.xml to meta language (similar to protobuf) and back.

melina --meta-out DIR1 meta.xml  # to meta
melina --xml-out DIR2 meta.meta  # back to xml

melina --meta-stdout meta.xml > x.meta  # or to stdout

This is how melina language looks like:

/// pdmeta: "1.1", domain: "f", product: "b", release: "AX", version: "1.5", revision: "198"

// line above is a header with meta module versions.
// It needs to be the first symbol in file and start with '///'

mo SCALAR
{
    // you can define managed objects like structs in C++

    bool x;
    int y;
    string z;
};

mo COMPLEX
{
    // enum/struct fields contain definition of enum/struct
    // enum/struct name should begin with small letter - after all it's a name of variable

    enum x
    {
        A = 1,
        B,
        C = 2
    };

    struct y
    {
        int z;
        struct v { int w; };
    };
};

mo CARDINALITY
{
    // you can define cardinality of each managed object or struct field

    int x; // required by default
    optional int y; // optional integer, may be null
    repeated int z; // list of integers
    repeated(15) int z; // at most 15 'z' integers
};

mo DEFAULTS
{
    // bool, int, string, enum can have default values

    bool x [default = true];
    int y [default = 12];
    string z [default = "foo bar"];
    enum v [default = 12] { A = 1, B = 12 };
};

mo RANGES
{
    // int/string fields can specify allowed ranges
    // if int has a 3-param specifier, it's considered a "float"

    int(0..12) x;  // allowed integers from 0 to 12 inclusive
    int(-0.5, 0.5, 0.001) y;  // allowed floats from -0.5 to 0.5 inclusive with step 0.001
    string(0..10) z; // allowed string length from 0 to 10 chars inclusive
};

mo UNITS
{
    // integers can have units (for documentational purposes)

    int y [units = "kbps"];
};

/**
 * Example managed object description.
 */
mo COMMENTS
{
    // you can use C++-style '//foo' or '/*foo*/' comments in meta files
    // doxygen-style comments '///foo' and '/**foo*/' are treated as mo/field description,
    // if present immediately above or rightwards of mo/field

    int x;  /// Example scalar field description
    int y;  /** Example scalar field description */

    /**
     * Example complex type description.
     */
    struct z
    {
    };

    /// Example complex type description.
    struct v
    {
    };
};

mo CHILDREN -> FIRST, SECOND, THIRD(10)
{
    // managed object can have children defined
    // children can have max count specified in parens (at most 10 THIRD children)
};

mo(hc) FLAGS
{
    // each managed object has: hidden('h'), create('c'), update('u'), delete('d') flags.
    // If not specified, hidden is assumed false, rest is assumed true.
    // Specification may be provided as 'hcud' letters in parens.
};

Metadata

Release files for melina 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for melina 0.1
File Size Uploaded
melina-0.1.tar.gz 14.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for melina 0.1
File Interpreter ABI Platform
melina-0.1-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 31.3 kB

Release files / melina-0.1.tar.gz

Download URL melina-0.1.tar.gz
Size 14.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e277912546855f3c02155533498caafa0ecf256de870de8d3e52ed5c5e03d518
BLAKE2b-256 checksum
How to use checksums
933a5a4ed9e4024513475b3d488c3da8a203e01a3472f2dcae2d2007507fe32b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / melina-0.1-py2.py3-none-any.whl

Download URL melina-0.1-py2.py3-none-any.whl
Size 17.3 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
30ef825cd52aa25daa340933f31486a3f2254c520abf9f084007d1b82ad3c0eb
BLAKE2b-256 checksum
How to use checksums
d6cfb763c2865d803e954e609db9011ec8ea38458cc0ecc88add5328fe31339e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page