-
Notifications
You must be signed in to change notification settings - Fork 41
/
enums.py
110 lines (85 loc) · 3.29 KB
/
enums.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
"""Enumerations and constants."""
from enum import Enum
from py4j.java_gateway import JavaObject
from graphar_pyspark import GraphArSession, _check_session
class GarType(Enum):
"""Main data type in gar enumeration."""
BOOL = "bool"
INT32 = "int32"
INT64 = "int64"
FLOAT = "float"
DOUBLE = "double"
STRING = "string"
LIST = "list"
@staticmethod
def from_scala(jvm_obj: JavaObject) -> "GarType":
"""Create an instance of the Class from the corresponding JVM object.
:param jvm_obj: scala object in JVM.
:returns: instance of Python Class.
"""
_check_session()
return GarType(GraphArSession.graphar.GarType.GarTypeToString(jvm_obj))
def to_scala(self) -> JavaObject:
"""Transform object to JVM representation.
:returns: JavaObject
"""
_check_session()
return GraphArSession.graphar.GarType.StringToGarType(self.value)
class FileType(Enum):
"""Type of file format."""
CSV = "csv"
JSON = "json"
PARQUET = "parquet"
ORC = "orc"
@staticmethod
def from_scala(jvm_obj: JavaObject) -> "FileType":
"""Create an instance of the Class from the corresponding JVM object.
:param jvm_obj: scala object in JVM.
:returns: instance of Python Class.
"""
_check_session()
return FileType(GraphArSession.graphar.FileType.FileTypeToString(jvm_obj))
def to_scala(self) -> JavaObject:
"""Transform object to JVM representation.
:returns: JavaObject
"""
_check_session()
return GraphArSession.graphar.FileType.StringToFileType(self.value)
class AdjListType(Enum):
"""Adj list type enumeration for adjacency list of graph."""
UNORDERED_BY_SOURCE = "unordered_by_source"
UNORDERED_BY_DEST = "unordered_by_dest"
ORDERED_BY_SOURCE = "ordered_by_source"
ORDERED_BY_DEST = "ordered_by_dest"
@staticmethod
def from_scala(jvm_obj: JavaObject) -> "AdjListType":
"""Create an instance of the Class from the corresponding JVM object.
:param jvm_obj: scala object in JVM.
:returns: instance of Python Class.
"""
_check_session()
return AdjListType(
GraphArSession.graphar.AdjListType.AdjListTypeToString(jvm_obj),
)
def to_scala(self) -> JavaObject:
"""Transform object to JVM representation.
:returns: JavaObject
"""
_check_session()
return GraphArSession.graphar.AdjListType.StringToAdjListType(self.value)