Coverage for skema/program_analysis/CAST2FN/model/cast/scalar_type.py: 46%

39 statements  

« prev     ^ index     » next       coverage.py v7.5.0, created at 2024-04-30 17:15 +0000

1# coding: utf-8 

2 

3""" 

4 SKEMA Common Abstract Syntax Tree (CAST) 

5 

6 This document outlines the structure of the CAST that will be used as a generic representation of the semantics of a program written in any language. This will be used when creating functions networks from programs using the SKEMA Program Analysis pipeline. __Generating Class Structure__ To automatically generate Python or Java models corresponding to this document, you can use [swagger-codegen](https://swagger.io/tools/swagger-codegen/). We can use this to generate client code based off of this spec that will also generate the class structure. 1. Install via the method described for your operating system [here](https://github.com/swagger-api/swagger-codegen#Prerequisites). Make sure to install a version after 3.0 that will support openapi 3. 2. Run swagger-codegen with the options in the example below. The URL references where the yaml for this documentation is stored on github. Make sure to replace CURRENT_VERSION with the correct version. To generate Java classes rather, change the `-l python` to `-l java`. Change the value to the `-o` option to the desired output location. ``` swagger-codegen generate -l python -o ./client -i https://raw.githubusercontent.com/ml4ai/automates-v2/master/docs/source/cast_v{CURRENT_VERSION}.yaml ``` 3. Once it executes, the client code will be generated at your specified location. For python, the classes will be located in `$OUTPUT_PATH/swagger_client/models/`. For java, they will be located in `$OUTPUT_PATH/src/main/java/io/swagger/client/model/` # noqa: E501 

7 

8 OpenAPI spec version: 1.2.6 

9  

10 Generated by: https://github.com/swagger-api/swagger-codegen.git 

11""" 

12 

13import pprint 

14import re # noqa: F401 

15 

16import six 

17 

18class ScalarType(object): 

19 """NOTE: This class is auto generated by the swagger code generator program. 

20 

21 Do not edit the class manually. 

22 """ 

23 

24 """ 

25 allowed enum values 

26 """ 

27 ELLIPSIS = "Ellipsis" 

28 INTEGER = "Integer" 

29 ABSTRACTFLOAT = "AbstractFloat" 

30 BOOLEAN = "Boolean" 

31 CHARACTER = "Character" 

32 """ 

33 Attributes: 

34 swagger_types (dict): The key is attribute name 

35 and the value is attribute type. 

36 attribute_map (dict): The key is attribute name 

37 and the value is json key in definition. 

38 """ 

39 swagger_types = { 

40 } 

41 

42 attribute_map = { 

43 } 

44 

45 def __init__(self): # noqa: E501 

46 """ScalarType - a model defined in Swagger""" # noqa: E501 

47 self.discriminator = None 

48 

49 def to_dict(self): 

50 """Returns the model properties as a dict""" 

51 result = {} 

52 

53 for attr, _ in six.iteritems(self.swagger_types): 

54 value = getattr(self, attr) 

55 if isinstance(value, list): 

56 result[attr] = list(map( 

57 lambda x: x.to_dict() if hasattr(x, "to_dict") else x, 

58 value 

59 )) 

60 elif hasattr(value, "to_dict"): 

61 result[attr] = value.to_dict() 

62 elif isinstance(value, dict): 

63 result[attr] = dict(map( 

64 lambda item: (item[0], item[1].to_dict()) 

65 if hasattr(item[1], "to_dict") else item, 

66 value.items() 

67 )) 

68 else: 

69 result[attr] = value 

70 if issubclass(ScalarType, dict): 

71 for key, value in self.items(): 

72 result[key] = value 

73 

74 return result 

75 

76 def to_str(self): 

77 """Returns the string representation of the model""" 

78 return pprint.pformat(self.to_dict()) 

79 

80 def __repr__(self): 

81 """For `print` and `pprint`""" 

82 return self.to_str() 

83 

84 def __eq__(self, other): 

85 """Returns true if both objects are equal""" 

86 if not isinstance(other, ScalarType): 

87 return False 

88 

89 return self.__dict__ == other.__dict__ 

90 

91 def __ne__(self, other): 

92 """Returns true if both objects are not equal""" 

93 return not self == other