Skip to main content

Write a json's GPAO file

Project description

IGN GPAO Project Builder

IGN GPAO Project Builder est une bibliothèque python de création de projet au format JSON pour la GPAO.

Prérequis

  • Python 3 ou plus

Installation

Vous pouvez la télécharger depuis les dépôts officiels de PyPI:

pip install ign-gpao-project-builder

Exemple d'utilisation

from gpao.builder import Builder
from gpao.project import Project
from gpao.job import Job

job1 = Job("job1", "touch file", tags=["tag1", "tag2"])
job2 = Job("job2", "touch file")
job3 = Job("job3", "touch file", job1, tags=["tag1", "tag2"])
job3.add_dependency(job2)

# print(job1.to_json())
# print(job2.to_json())
# print(job3.to_json())

project1 = Project("project1", [job1, job2, job3])
# print(project1.to_json())

job4 = Job("job4", "touch file")
job5 = Job("job5", "touch file")
job5.add_dependency(job4)

project2 = Project("project2", [job4, job5])

# print(project2.to_json())

job6 = Job("job6", "touch file")
job7 = Job("job7", "touch file", job6)
project3 = Project("project3", [job6, job7], [project1, project2])

# print(project3.to_json())

builder = Builder([project1, project2])
builder.add_project(project3)

builder.save_as_json("project.json")


job8 = Job("job8", "touch file")
job8bis = Job("job8bis", "touch file", job8)
project4 = Project("project4",  [job8, job8bis])

job9 = Job("job9", "touch file")
project5 = Project("project5",  [job9], [project4])

builder = Builder([project4, project5])

builder.send_project_to_api("http://localhost:8080")

Cet exemple sauvegarde un fichier project.json avec le contenu suivant :

{
    "projects": [
        {
            "name": "project1",
            "jobs": [
                {
                    "name": "job1",
                    "command": "touch file",
                    "tags": [
                        "tag1",
                        "tag2"
                    ]
                },
                {
                    "name": "job2",
                    "command": "touch file"
                },
                {
                    "name": "job3",
                    "command": "touch file",
                    "deps": [
                        {
                            "id": 0
                        },
                        {
                            "id": 1
                        }
                    ],
                    "tags": [
                        "tag1",
                        "tag2"
                    ]
                }
            ]
        },
        {
            "name": "project2",
            "jobs": [
                {
                    "name": "job4",
                    "command": "touch file"
                },
                {
                    "name": "job5",
                    "command": "touch file",
                    "deps": [
                        {
                            "id": 0
                        }
                    ]
                }
            ]
        },
        {
            "name": "project3",
            "jobs": [
                {
                    "name": "job6",
                    "command": "touch file"
                },
                {
                    "name": "job7",
                    "command": "touch file",
                    "deps": [
                        {
                            "id": 0
                        }
                    ]
                }
            ],
            "deps": [
                {
                    "id": 0
                },
                {
                    "id": 1
                }
            ]
        }
    ]
}

Licence

Ce projet est sous licence CECILL-B (voir LICENSE.md).

IGN

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

ign-gpao-project-builder-0.12.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file ign-gpao-project-builder-0.12.0.tar.gz.

File metadata

File hashes

Hashes for ign-gpao-project-builder-0.12.0.tar.gz
Algorithm Hash digest
SHA256 c78c963ec91a03a342e342a8a858256c8e10c1a94587901d3579b4583da524bf
MD5 e35c5d40ac6c9687398566b38a6fb9a3
BLAKE2b-256 371dd3211cc0c2102a303195e76f63016a424e4932c7df5159d090e8f0baccc7

See more details on using hashes here.

File details

Details for the file ign_gpao_project_builder-0.12.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ign_gpao_project_builder-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a993bd93eb525d240158cbb51506a2c0474c6b688583902eb010e23384cc0240
MD5 2a972ad0287a5f52201f73ee5640f43d
BLAKE2b-256 636239da0786fc510c638e735ec11bf7770f57b8444486533e58e19a8e2d8293

See more details on using hashes here.

Supported by

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