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.8.0.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

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

ign_gpao_project_builder-0.8.0-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for ign-gpao-project-builder-0.8.0.tar.gz
Algorithm Hash digest
SHA256 bb74d7c5ba3482b3285ef147930515dda4aa94df0432096ff776aa181102b5bc
MD5 a3daec42c907f84d3d04b48c1ac6112d
BLAKE2b-256 46e7128daeb96f45ee0b01f849df3ed3bcbb1f3414fad028bb009eea8942d9eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ign_gpao_project_builder-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba57442ad5517b13f59ebd1517b194061d48dbfa09c9b22d1834ba8d668ea28e
MD5 d07da5efef1f4131c863a9948ee9a94d
BLAKE2b-256 f92c60e4add507b2d37a10a6fd932493f623bbd0361e84b0dd35ab1d1e511d14

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