Skip to content

Commit 87dac2c

Browse files
authored
Separate flatdata-py and flatdata-generator at the root of the repository (#123)
* Separate flatdata-py and flatdata-generator in their own directories Signed-off-by: Gabriel Féron <[email protected]> * Add instructions on how to run the generator and inspector with the new package structure Signed-off-by: Gabriel Féron <[email protected]> * pip3 install without --user Signed-off-by: Gabriel Féron <[email protected]> * Fix CI and CMake path to generator Signed-off-by: Gabriel Féron <[email protected]> * Add generator requirements.txt link to flatdata-py requirements.txt Signed-off-by: Gabriel Féron <[email protected]> * Move flatdata-py to flatdata.lib Signed-off-by: Gabriel Féron <[email protected]> * Install flatdata-generator in Travis Signed-off-by: Gabriel Féron <[email protected]> * Mention PYTHONPATH for local development Signed-off-by: Gabriel Féron <[email protected]> * Fix generator test Signed-off-by: Gabriel Féron <[email protected]> * Trying to fix Travis CI Signed-off-by: Gabriel Féron <[email protected]> * Trying to fix pip3 install in CI Signed-off-by: Gabriel Féron <[email protected]> * Use find_package since find_namespace_packages is not widely available Signed-off-by: Gabriel Féron <[email protected]> * Various fixes for older setuptools Signed-off-by: Gabriel Féron <[email protected]>
1 parent 852b0c2 commit 87dac2c

File tree

265 files changed

+300
-187
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

265 files changed

+300
-187
lines changed

.travis.yml

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,34 @@ matrix:
55
- rust: nightly
66

77
include:
8-
# flatdata-py and generator
8+
# flatdata-generator
99
- language: python
10+
name: "flatdata-generator"
1011
dist: xenial
1112
python: 3.5
1213
script:
14+
- cd flatdata-generator
15+
- pip3 install -r requirements.txt # runtime requirements
16+
- pip3 install nose pylint # CI requirements
17+
- python3 -m nose
18+
# try to install
19+
- pip3 install .
20+
- flatdata-generator --help
21+
22+
# flatdata-py
23+
- language: python
24+
name: "flatdata-py"
25+
dist: xenial
26+
python: 3.5
27+
script:
28+
- pip3 install ./flatdata-generator
1329
- cd flatdata-py
14-
- pip3 install -r requirements.txt
15-
- pip3 install -r generator/requirements.txt
16-
- pip3 install pylint
30+
- pip3 install -r requirements.txt # runtime requirements
31+
- pip3 install nose pylint # CI requirements
1732
- python3 -m nose
18-
- pylint flatdata generator || true
33+
# try to install
34+
- pip3 install .
35+
- flatdata-inspector --help
1936

2037
# cpp
2138
- language: cpp
@@ -25,9 +42,10 @@ matrix:
2542
apt:
2643
packages:
2744
- python3-pip
45+
- python3-setuptools
2846
- libboost-filesystem-dev
2947
before_script:
30-
- pip3 install -r flatdata-py/generator/requirements.txt
48+
- pip3 install ./flatdata-generator
3149
script:
3250
- flatdata-cpp/ci/build-and-test-cpp.sh
3351

@@ -39,9 +57,10 @@ matrix:
3957
apt:
4058
packages:
4159
- python3-pip
60+
- python3-setuptools
4261
- libboost-filesystem-dev
4362
before_script:
44-
- pip3 install -r flatdata-py/generator/requirements.txt
63+
- pip3 install ./flatdata-generator
4564
script:
4665
- flatdata-cpp/ci/build-and-test-cpp.sh
4766

@@ -68,9 +87,10 @@ matrix:
6887
apt:
6988
packages:
7089
- python3-pip
90+
- python3-setuptools
7191
- graphviz
7292
before_script:
73-
- pip3 install -r flatdata-py/generator/requirements.txt
93+
- pip3 install ./flatdata-generator
7494
script:
7595
- ci/dot_test_cases.sh
7696

@@ -84,8 +104,9 @@ matrix:
84104
apt:
85105
packages:
86106
- python3-pip
107+
- python3-setuptools
87108
before_script:
88-
- pip3 install -r flatdata-py/generator/requirements.txt
109+
- pip3 install ./flatdata-generator
89110
- cd flatdata-rs
90111
script:
91112
- cargo build
@@ -103,8 +124,9 @@ matrix:
103124
apt:
104125
packages:
105126
- python3-pip
127+
- python3-setuptools
106128
before_script:
107-
- pip3 install -r flatdata-py/generator/requirements.txt
129+
- pip3 install ./flatdata-generator
108130
- cd flatdata-rs
109131
script:
110132
- cargo build
@@ -120,9 +142,10 @@ matrix:
120142
apt:
121143
packages:
122144
- python3-pip
145+
- python3-setuptools
123146
before_script:
124-
- pip3 install -r flatdata-py/generator/requirements.txt
147+
- pip3 install ./flatdata-generator
125148
- cd flatdata-rs
126149
script:
127150
- cargo build
128-
- cargo test
151+
- cargo test

flatdata-cpp/cmake/flatdata/GenerateSource.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set(FLATDATA_GENERATOR_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../flatdata-py)
1+
set(FLATDATA_GENERATOR_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../flatdata-generator)
22

33
# Generates sources from flatdata schema
44
#
@@ -17,7 +17,7 @@ function(flatdata_generate_source TARGET_NAME SCHEMA_FILENAME OUTPUT_FILENAME)
1717

1818
add_custom_command(
1919
OUTPUT ${OUTPUT_FILENAME}
20-
COMMAND ${PYTHON3_EXECUTABLE} ${FLATDATA_GENERATOR_PATH}/generate.py
20+
COMMAND ${PYTHON3_EXECUTABLE} ${FLATDATA_GENERATOR_PATH}/generator.py
2121
--gen cpp
2222
--schema ${SCHEMA_FILENAME}
2323
--output-file ${OUTPUT_FILENAME}

flatdata-generator/.pylintrc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[MASTER]
2+
max-line-length=120
3+
4+
[MESSAGES CONTROL]
5+
disable=missing-docstring,line-too-long

flatdata-py/generator/README.md renamed to flatdata-generator/README.md

Lines changed: 14 additions & 3 deletions

flatdata-py/generator/app.py renamed to flatdata-generator/flatdata/generator/app.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#!/usr/bin/env python3
21
'''
32
Copyright (c) 2017 HERE Europe B.V.
43
See the LICENSE file in the root of this project for license details.
@@ -11,15 +10,15 @@
1110

1211
# check that requirements are installed here
1312
try:
14-
#pylint: disable=unused-import
13+
# pylint: disable=unused-import
1514
import pyparsing
1615
import jinja2
1716
except ModuleNotFoundError as exc:
1817
print("Cannot import `%s`, you probably need to install it. See `generator/requirements.txt` or `README.md`." % exc.name, file=sys.stderr)
1918
sys.exit(2)
2019

21-
from generator.engine import Engine
22-
from generator.tree.errors import FlatdataSyntaxError
20+
from flatdata.generator.engine import Engine
21+
from flatdata.generator.tree.errors import FlatdataSyntaxError
2322

2423

2524
def _parse_command_line():
@@ -89,8 +88,4 @@ def _run(args):
8988

9089
def main():
9190
"""Entrypoint"""
92-
_run(_parse_command_line())
93-
94-
95-
if __name__ == "__main__":
96-
main()
91+
_run(_parse_command_line())

flatdata-py/generator/engine.py renamed to flatdata-generator/flatdata/generator/engine.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
import imp
77

8-
from generator.tree.builder import build_ast
9-
from generator.tree.nodes.trivial.namespace import Namespace
8+
from flatdata.generator.tree.builder import build_ast
9+
from flatdata.generator.tree.nodes.trivial.namespace import Namespace
1010

1111
from .generators.cpp import CppGenerator
1212
from .generators.dot import DotGenerator

flatdata-py/generator/generators/__init__.py renamed to flatdata-generator/flatdata/generator/generators/__init__.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
from jinja2.ext import Extension
1010
from jinja2.exceptions import TemplateRuntimeError
1111

12-
from generator.tree.nodes.archive import Archive
13-
from generator.tree.nodes.trivial import Structure, Enumeration, Constant, Namespace
14-
from generator.tree.nodes.resources import ResourceBase, BoundResource, Archive as \
12+
from flatdata.generator.tree.nodes.archive import Archive
13+
from flatdata.generator.tree.nodes.trivial import Structure, Enumeration, Constant, Namespace
14+
from flatdata.generator.tree.nodes.resources import ResourceBase, BoundResource, Archive as \
1515
ArchiveResource, Vector, Multivector, Instance, RawData
16-
from generator.tree.syntax_tree import SyntaxTree
17-
from generator.tree.traversal import DfsTraversal
16+
from flatdata.generator.tree.syntax_tree import SyntaxTree
17+
from flatdata.generator.tree.traversal import DfsTraversal
1818

1919

2020
class BaseGenerator(metaclass=ABCMeta):
@@ -36,7 +36,7 @@ def _populate_environment(self, env):
3636

3737
def render(self, tree):
3838
"""Generate the language implementation from the AST"""
39-
env = Environment(loader=PackageLoader('generator', 'templates'), lstrip_blocks=True,
39+
env = Environment(loader=PackageLoader('flatdata.generator', 'templates'), lstrip_blocks=True,
4040
trim_blocks=True, autoescape=False, extensions=[RaiseExtension])
4141
env.filters['is_archive'] = lambda n: isinstance(n, Archive)
4242
env.filters['is_instance'] = lambda n: isinstance(n, Instance)

flatdata-py/generator/generators/cpp.py renamed to flatdata-generator/flatdata/generator/generators/cpp.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
See the LICENSE file in the root of this project for license details.
44
'''
55

6-
from generator.tree.nodes.resources import Vector, Multivector, Instance, RawData, BoundResource, \
6+
from flatdata.generator.tree.nodes.resources import Vector, Multivector, Instance, RawData, BoundResource, \
77
ResourceBase, Archive as ArchiveResource
8-
from generator.tree.nodes.trivial import Structure, Enumeration, Constant, Field
9-
from generator.tree.nodes.archive import Archive
8+
from flatdata.generator.tree.nodes.trivial import Structure, Enumeration, Constant, Field
9+
from flatdata.generator.tree.nodes.archive import Archive
1010
from . import BaseGenerator
1111

1212

flatdata-py/generator/generators/dot.py renamed to flatdata-generator/flatdata/generator/generators/dot.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
See the LICENSE file in the root of this project for license details.
44
'''
55

6-
from generator.tree.nodes.archive import Archive
6+
from flatdata.generator.tree.nodes.archive import Archive
77
from . import BaseGenerator
88

99
SCOPE_SEPARATOR = "__"

flatdata-py/generator/generators/flatdata.py renamed to flatdata-generator/flatdata/generator/generators/flatdata.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
See the LICENSE file in the root of this project for license details.
44
'''
55

6-
from generator.tree.nodes.resources import BoundResource
7-
from generator.tree.nodes.trivial import Structure, Enumeration, Constant
8-
from generator.tree.nodes.archive import Archive
9-
from generator.tree.syntax_tree import SyntaxTree
6+
from flatdata.generator.tree.nodes.resources import BoundResource
7+
from flatdata.generator.tree.nodes.trivial import Structure, Enumeration, Constant
8+
from flatdata.generator.tree.nodes.archive import Archive
9+
from flatdata.generator.tree.syntax_tree import SyntaxTree
1010
from . import BaseGenerator
1111

1212

flatdata-py/generator/generators/go.py renamed to flatdata-generator/flatdata/generator/generators/go.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
Copyright (c) 2017 HERE Europe B.V.
33
See the LICENSE file in the root of this project for license details.
44
'''
5-
from generator.tree.nodes.archive import Archive
6-
from generator.tree.nodes.node import Node
7-
from generator.tree.nodes.resources import Instance, Vector, Multivector, RawData
8-
from generator.tree.nodes.resources.archive import Archive as ArchiveResource
9-
from generator.tree.nodes.trivial import Structure, Constant
5+
from flatdata.generator.tree.nodes.archive import Archive
6+
from flatdata.generator.tree.nodes.node import Node
7+
from flatdata.generator.tree.nodes.resources import Instance, Vector, Multivector, RawData
8+
from flatdata.generator.tree.nodes.resources.archive import Archive as ArchiveResource
9+
from flatdata.generator.tree.nodes.trivial import Structure, Constant
1010

1111
from . import BaseGenerator
1212

flatdata-py/generator/generators/python.py renamed to flatdata-generator/flatdata/generator/generators/python.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
Copyright (c) 2017 HERE Europe B.V.
33
See the LICENSE file in the root of this project for license details.
44
'''
5-
from generator.tree.nodes.resources import Instance, Vector, Multivector, RawData
6-
from generator.tree.nodes.resources.archive import Archive as ArchiveResource
7-
from generator.tree.nodes.trivial import Structure
8-
from generator.tree.nodes.node import Node
9-
from generator.tree.nodes.archive import Archive
5+
from flatdata.generator.tree.nodes.resources import Instance, Vector, Multivector, RawData
6+
from flatdata.generator.tree.nodes.resources.archive import Archive as ArchiveResource
7+
from flatdata.generator.tree.nodes.trivial import Structure
8+
from flatdata.generator.tree.nodes.node import Node
9+
from flatdata.generator.tree.nodes.archive import Archive
1010
from . import BaseGenerator
1111

1212

flatdata-py/generator/generators/rust.py renamed to flatdata-generator/flatdata/generator/generators/rust.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
'''
55
import re
66

7-
from generator.tree.nodes.resources import (Vector, Multivector, Instance, RawData, BoundResource,
7+
from flatdata.generator.tree.nodes.resources import (Vector, Multivector, Instance, RawData, BoundResource,
88
Archive as ArchiveResource)
9-
from generator.tree.nodes.trivial import Structure, Constant, Enumeration
10-
from generator.tree.helpers.enumtype import EnumType
11-
from generator.tree.nodes.archive import Archive
12-
from generator.tree.syntax_tree import SyntaxTree
9+
from flatdata.generator.tree.nodes.trivial import Structure, Constant, Enumeration
10+
from flatdata.generator.tree.helpers.enumtype import EnumType
11+
from flatdata.generator.tree.nodes.archive import Archive
12+
from flatdata.generator.tree.syntax_tree import SyntaxTree
1313
from . import BaseGenerator
1414

1515

flatdata-py/generator/templates/py/python.jinja2 renamed to flatdata-generator/flatdata/generator/templates/py/python.jinja2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Any modifications to this file will be lost upon next regeneration. #
55
#############################################################################
66

7-
import flatdata
7+
import flatdata.lib as flatdata
88

99
{% macro structure_definition(tree, struct) %}
1010
{{ struct.doc|to_python_doc}}

flatdata-py/generator/tree/builder.py renamed to flatdata-generator/flatdata/generator/tree/builder.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55

66
from pyparsing import ParseException, ParseSyntaxException
77

8-
import generator.tree.nodes.trivial as nodes
9-
from generator.grammar import flatdata_grammar
10-
from generator.tree.errors import InvalidEnumWidthError
11-
from generator.tree.nodes.archive import Archive
12-
from generator.tree.nodes.node import Node
13-
from generator.tree.syntax_tree import SyntaxTree
14-
from generator.tree.nodes.resources import Multivector
15-
from generator.tree.nodes.references import BuiltinStructureReference, ConstantReference, EnumerationReference
16-
from generator.tree.nodes.root import Root
17-
from generator.tree.errors import ParsingError
18-
from generator.tree.traversal import DfsTraversal
19-
from generator.tree.helpers.basictype import BasicType
20-
from generator.tree.helpers.enumtype import EnumType
8+
import flatdata.generator.tree.nodes.trivial as nodes
9+
from flatdata.generator.grammar import flatdata_grammar
10+
from flatdata.generator.tree.errors import InvalidEnumWidthError
11+
from flatdata.generator.tree.nodes.archive import Archive
12+
from flatdata.generator.tree.nodes.node import Node
13+
from flatdata.generator.tree.syntax_tree import SyntaxTree
14+
from flatdata.generator.tree.nodes.resources import Multivector
15+
from flatdata.generator.tree.nodes.references import BuiltinStructureReference, ConstantReference, EnumerationReference
16+
from flatdata.generator.tree.nodes.root import Root
17+
from flatdata.generator.tree.errors import ParsingError
18+
from flatdata.generator.tree.traversal import DfsTraversal
19+
from flatdata.generator.tree.helpers.basictype import BasicType
20+
from flatdata.generator.tree.helpers.enumtype import EnumType
2121

2222
from .resolver import resolve_references
2323

flatdata-py/generator/tree/helpers/basictype.py renamed to flatdata-generator/flatdata/generator/tree/helpers/basictype.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from generator import grammar
2-
from generator.tree.errors import InvalidWidthError
3-
from generator.tree.errors import InvalidSignError
1+
from flatdata.generator import grammar
2+
from flatdata.generator.tree.errors import InvalidWidthError
3+
from flatdata.generator.tree.errors import InvalidSignError
44

55

66
class BasicType:

flatdata-py/generator/tree/nodes/archive.py renamed to flatdata-generator/flatdata/generator/tree/nodes/archive.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from generator.tree.errors import UnexpectedResourceType
2-
from generator.tree.nodes.node import Node
3-
import generator.tree.nodes.resources as resources
1+
from flatdata.generator.tree.errors import UnexpectedResourceType
2+
from flatdata.generator.tree.nodes.node import Node
3+
import flatdata.generator.tree.nodes.resources as resources
44

55

66
def _create_resource(properties):

flatdata-py/generator/tree/nodes/explicit_reference.py renamed to flatdata-generator/flatdata/generator/tree/nodes/explicit_reference.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from generator.tree.nodes.node import Node
2-
from generator.tree.nodes.references import ResourceReference, FieldReference, StructureReference
1+
from flatdata.generator.tree.nodes.node import Node
2+
from flatdata.generator.tree.nodes.references import ResourceReference, FieldReference, StructureReference
33

44

55
class ExplicitReference(Node):

0 commit comments

Comments
 (0)