class TestAPIGraphAccessor(TestCase): graphClient = None def setUp(self): self.graphClient = APIGraphAccessor(GraphClient()) def test_get_parent_api_node_for_api_node(self): node = self.graphClient.get_parent_api_node_for_api_node(93013) self.assertEqual(type(node), Node) self.assertEqual(self.graphClient.get_id_for_node(node), 92919)
def build_aliases_for_api(self): # fuller = APIAliasesTableFuller() # fuller.start_add_all_api_aliases() useless_alias_type_list = [ APIAlias.ALIAS_TYPE_QUALIFIER_NAME, APIAlias.ALIAS_TYPE_SIMPLE_NAME_WITH_TYPE, APIAlias.ALIAS_TYPE_SIMPLE_CLASS_NAME_METHOD_WITH_QUALIFIER_PARAMETER_TYPE, APIAlias.ALIAS_TYPE_SIMPLE_NAME_METHOD_WITH_SIMPLE_PARAMETER_TYPE, APIAlias.ALIAS_TYPE_SIMPLE_METHOD_WITH_QUALIFIER_PARAMETER_TYPE, APIAlias.ALIAS_TYPE_SIMPLE_CLASS_NAME_METHOD_WITH_SIMPLE_PARAMETER_TYPE ] EntityForQA.delete_names_by_source(session=self.session, source="api") accessor = APIGraphAccessor(GraphClient(server_number=4)) pair_list = accessor.get_all_api_id_and_kg_id_pair() for pair in pair_list: name_set = set([]) api_entity = APIEntity.find_by_id(session=self.session, api_entity_id=pair["api_id"]) all_aliases = api_entity.all_aliases for alias_entity in all_aliases: if alias_entity.type in useless_alias_type_list: continue if api_entity.api_type == APIEntity.API_TYPE_METHOD or api_entity.api_type == APIEntity.API_TYPE_CONSTRUCTOR: if alias_entity.type == APIAlias.ALIAS_TYPE_QUALIFIER_NAME: method_alias_need_to_add = alias_entity.alias.split("(")[0] package_split_list = method_alias_need_to_add.split(".") if len(package_split_list)>=2: alias = package_split_list[-2] + "." + package_split_list[-1] print("add method name=", alias) name_set.add(alias) name_set.add(package_split_list[-1]) else: name_set.add(package_split_list[-1]) continue if api_entity.api_type == APIEntity.API_TYPE_PARAMETER or api_entity.api_type == APIEntity.API_TYPE_RETURN_VALUE: continue name_set.add(alias_entity.alias) for name in name_set: entity = EntityForQA(kg_id=pair["kg_id"], entity_id=pair["api_id"], source="api", attr='api_id', attr_value=name) self.session.add(entity) self.session.commit()
from neo4j_importer.import_api_relation import APIRelationImporter from skgraph.graph.accessor.graph_accessor import GraphClient from skgraph.graph.accessor.graph_client_for_api import APIGraphAccessor if __name__ == "__main__": # import relationships automatically api_relation_importer = APIRelationImporter() graphClient = APIGraphAccessor(GraphClient(server_number=4)) api_relation_importer.start_import(graphClient)
def setUp(self): self.graphClient = APIGraphAccessor(GraphClient())
from script.api_linking.api_linker_operation import APILinkerOperation from db.api_linker import APILinker from shared.logger_util import Logger from skgraph.graph.accessor.graph_accessor import GraphClient from skgraph.graph.accessor.graph_client_for_api import APIGraphAccessor from skgraph.graph.graph_operator import GraphOperator client = GraphClient(server_number=1) graphOperator = GraphOperator(client) api_linker = APILinker() logger = Logger("API_Name_Linking").get_log() accessor = APIGraphAccessor(GraphClient()) operation = APILinkerOperation(logger, accessor, api_linker) graphOperator.operate_on_all_nodes(500, ['api'], operation)
sys.setdefaultencoding("utf-8") app = Flask(__name__) CORS(app) db_handler = SQLAlchemyHandler() db_handler.setLevel(logging.WARN) # Only serious messages app.logger.addHandler(db_handler) logger = Logger("neo4jServer").get_log() logger.info("create logger") client = GraphClient(server_number=4) graphClient = DefaultGraphAccessor(client) logger.info("create graphClient") apiGraphClient = APIGraphAccessor(client) semanticSearchAccessor = SemanticSearchAccessor(client) # api_entity_linker = APIEntityLinking() # logger.info("create api_entity_linker object") questionAnswerSystem = QuestionAnswerSystem() logger.info("create questionAnswerSystem") dbSOPostSearcher = SOPostSearcher(EngineFactory.create_so_session(), logger=app.logger) logger.info("create SO POST Searcher") api_entity_session = EngineFactory.create_session(autocommit=True) apiSearcher = APISearcher(session=api_entity_session, logger=app.logger) logger.info("create API Searcher")