Skip to content

Commit c179c48

Browse files
committed
parser class metadata
1 parent 5cfa947 commit c179c48

17 files changed

+58
-34
lines changed

src/codetext/__init__.py

100755100644
File mode changed.

src/codetext/clean/__init__.py

100755100644
File mode changed.

src/codetext/clean/noise_removal.py

100755100644
File mode changed.

src/codetext/parser/__init__.py

100755100644
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
from .cpp_parser import CppParser
1111
from .c_sharp_parser import CsharpParser
1212
from .rust_parser import RustParser
13-
from .language_parser import LanguageParser
13+
from .language_parser import LanguageParser, get_node_by_kind, get_node_text, \
14+
tokenize_code, tokenize_docstring, nodes_are_equal
1415

1516
__all__ = [
1617
'GoParser', 'PhpParser', 'RubyParser', 'JavaParser', 'JavascriptParser',

src/codetext/parser/c_sharp_parser.py

100755100644
Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,24 @@ def get_function_metadata(function_node, blob: str=None) -> Dict[str, Any]:
130130
for param_node in child.children:
131131
param_nodes = get_node_by_kind(param_node, ['parameter'])
132132
for param in param_nodes:
133-
param_type = get_node_text(param.children[0])
134-
param_identifier = get_node_text(param.children[1])
135-
136-
metadata['parameters'][param_identifier] = param_type
133+
if len(param.children) > 1:
134+
param_type = get_node_text(param.children[0])
135+
param_name = get_node_text(param.children[1])
136+
metadata['parameters'][param_name] = param_type
137+
138+
else:
139+
param_name = get_node_text(param.children[0])
140+
metadata['parameters'][param_name] = None
141+
# for node in param.children:
142+
# if node.type in ['array_type', 'implicit_type', \
143+
# 'nullable_type', 'pointer_type', 'function_pointer_type', \
144+
# 'predefined_type', 'tuple_type']:
145+
# param_type = get_node_text(node)
146+
# elif node.type == 'identifier':
147+
# param_identifier = get_node_text(node)
148+
149+
# param_type = get_node_text(param.child_by_field_name('type'))
150+
# param_identifier = get_node_text(param.child_by_field_name('name'))
137151
return metadata
138152

139153
@staticmethod
@@ -147,19 +161,19 @@ def get_class_metadata(class_node, blob: str=None) -> Dict[str, str]:
147161
logger.info('From version `0.0.6` this function will update argument in the API')
148162
metadata = {
149163
'identifier': '',
150-
'parameters': '',
164+
'parameters': {},
151165
}
152166
assert type(class_node) == tree_sitter.Node
153167

154168
for child in class_node.children:
155169
if child.type == 'identifier':
156170
metadata['identifier'] = get_node_text(child)
157171
elif child.type == 'base_list':
158-
argument_list = []
159172
for arg in child.children:
160173
if arg.type == 'identifier':
161-
argument_list.append(get_node_text(arg))
162-
metadata['parameters'] = argument_list
174+
metadata['parameters'][get_node_text(arg)] = None
175+
# argument_list.append(get_node_text(arg))
176+
# metadata['parameters'] = argument_list
163177

164178
return metadata
165179

src/codetext/parser/cpp_parser.py

100755100644
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@ def get_function_metadata(function_node, blob: str=None) -> Dict[str, Any]:
134134
param_type = param.child_by_field_name('type')
135135
param_type = get_node_text(param_type)
136136
list_name = get_node_by_kind(param, ['identifier'])
137-
assert len(list_name) == 1
137+
if not list_name:
138+
continue
138139
param_name = get_node_text(list_name[0])
139140
metadata['parameters'][param_name] = param_type
140141
# for item in param.children:
@@ -157,7 +158,7 @@ def get_class_metadata(class_node, blob: str=None) -> Dict[str, str]:
157158
logger.info('From version `0.0.6` this function will update argument in the API')
158159
metadata = {
159160
'identifier': '',
160-
'parameters': '',
161+
'parameters': {},
161162
}
162163
assert type(class_node) == tree_sitter.Node
163164

@@ -168,7 +169,8 @@ def get_class_metadata(class_node, blob: str=None) -> Dict[str, str]:
168169
argument_list = []
169170
for param in child.children:
170171
if param.type == 'type_identifier':
171-
argument_list.append(get_node_text(param))
172-
metadata['parameters'] = argument_list
172+
metadata['parameters'][get_node_text(param)] = None
173+
# argument_list.append(get_node_text(param))
174+
# metadata['parameters'] = argument_list
173175

174176
return metadata

src/codetext/parser/go_parser.py

100755100644
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def get_comment_node(function_node):
2020
Return:
2121
List: list of comment nodes
2222
"""
23-
comment_node = get_node_by_kind(function_node, comment_node, kind='comment')
23+
comment_node = get_node_by_kind(function_node, kind='comment')
2424
return comment_node
2525

2626
@staticmethod

src/codetext/parser/java_parser.py

100755100644
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def get_class_metadata(class_node, blob: str=None) -> Dict[str, str]:
8888
logger.info('From version `0.0.6` this function will update argument in the API')
8989
metadata = {
9090
'identifier': '',
91-
'parameters': '',
91+
'parameters': {},
9292
}
9393
argument_list = []
9494
for child in class_node.children:
@@ -97,9 +97,10 @@ def get_class_metadata(class_node, blob: str=None) -> Dict[str, str]:
9797
elif child.type == 'superclass' or child.type == 'super_interfaces':
9898
for subchild in child.children:
9999
if subchild.type == 'type_list' or subchild.type == 'type_identifier':
100-
argument_list.append(get_node_text(subchild))
100+
metadata['parameters'][get_node_text(subchild)] = None
101+
# argument_list.append(get_node_text(subchild))
101102

102-
metadata['parameters'] = argument_list
103+
# metadata['parameters'] = argument_list
103104
return metadata
104105

105106
@staticmethod

src/codetext/parser/javascript_parser.py

100755100644
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ def get_class_metadata(class_node, blob=None):
9595
logger.info('From version `0.0.6` this function will update argument in the API')
9696
metadata = {
9797
'identifier': '',
98-
'parameters': '',
98+
'parameters': {},
9999
}
100100
param = []
101101
for child in class_node.children:
@@ -104,7 +104,8 @@ def get_class_metadata(class_node, blob=None):
104104
elif child.type == 'class_heritage':
105105
for subchild in child.children:
106106
if subchild.type == 'identifier':
107-
param.append(get_node_text(subchild))
107+
metadata['parameters'][get_node_text(subchild)] = None
108+
# param.append(get_node_text(subchild))
108109

109-
metadata['parameters'] = param
110+
# metadata['parameters'] = param
110111
return metadata

src/codetext/parser/language_parser.py

100755100644
File mode changed.

0 commit comments

Comments
 (0)