-
Notifications
You must be signed in to change notification settings - Fork 32
/
static.py
126 lines (110 loc) · 3.21 KB
/
static.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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/usr/bin/env python
# SPDX-FileCopyrightText: 2022 Albert Meroño, Rinke Hoekstra, Carlos Martínez
#
# SPDX-License-Identifier: MIT
# static.py: static values for the grlc Server
import os
from configparser import ConfigParser
DEFAULT_HOST = None
DEFAULT_PORT = 8088
# XSD datatypes for parsing queries with parameters
XSD_DATATYPES = [
"decimal",
"float",
"double",
"integer",
"positiveInteger",
"negativeInteger",
"nonPositiveInteger",
"nonNegativeInteger",
"long",
"int",
"short",
"byte",
"unsignedLong",
"unsignedInt",
"unsignedShort",
"unsignedByte",
"dateTime",
"date",
"gYearMonth",
"gYear",
"duration",
"gMonthDay",
"gDay",
"gMonth",
"string",
"normalizedString",
"token",
"language",
"NMTOKEN",
"NMTOKENS",
"Name",
"NCName",
"ID",
"IDREFS",
"ENTITY",
"ENTITIES",
"QName",
"boolean",
"hexBinary",
"base64Binary",
"anyURI",
"notation",
]
# MIME types for content negotiation
mimetypes = {
"csv": "text/csv; q=1.0, */*; q=0.1",
"json": "application/json; q=1.0, application/sparql-results+json; q=0.8, */*; q=0.1",
"html": "text/html; q=1.0, */*; q=0.1",
"ttl": "text/turtle",
}
# GitHub base URLS
GITHUB_RAW_BASE_URL = "https://raw.githubusercontent.com/"
GITHUB_API_BASE_URL = "https://api.github.com/repos/"
# Git types
TYPE_GITHUB = "github"
TYPE_GITLAB = "gitlab"
# Cache control
# CACHE_CONTROL_POLICY = 'public, max-age=60'
# With the new hash retrieveal and redirect caching becomes obsolete
CACHE_CONTROL_POLICY = "no-cache"
# Setting headers to use access_token for the GitHub API
config_fallbacks = {
"github_access_token": "",
"gitlab_access_token": "",
"sparql_access_token": "",
"sparql_endpoint": "",
"user": "",
"password": "",
"server_name": "",
"local_sparql_dir": "",
"debug": "False",
"gitlab_url": "https://gitlab",
}
config = ConfigParser(config_fallbacks)
config.add_section("auth")
config.add_section("defaults")
config.add_section("local")
config.add_section("api_gitlab")
config_filename = os.path.join(os.getcwd(), "config.ini")
print("Reading config file: ", config_filename)
config.read(config_filename)
GITHUB_ACCESS_TOKEN = config.get("auth", "github_access_token")
GITLAB_ACCESS_TOKEN = config.get("auth", "gitlab_access_token")
SPARQL_ACCESS_TOKEN = config.get("auth", "sparql_access_token")
# Default endpoint, if none specified elsewhere
DEFAULT_ENDPOINT = config.get("defaults", "sparql_endpoint")
DEFAULT_ENDPOINT_USER = config.get("defaults", "user")
DEFAULT_ENDPOINT_PASSWORD = config.get("defaults", "password")
# Local folder where queries are loaded from
LOCAL_SPARQL_DIR = config.get("local", "local_sparql_dir")
# api_gitlab
GITLAB_URL = config.get("api_gitlab", "gitlab_url")
# server name, used by the Flask app and in the swagger spec
SERVER_NAME = config.get("defaults", "server_name")
# Logging format (prettier than the ugly standard in Flask)
LOG_FORMAT = "%(asctime)-15s [%(levelname)s] (%(module)s.%(funcName)s) %(message)s"
LOG_DEBUG_MODE = config.getboolean("defaults", "debug")
# Pattern for INSERT query call names
INSERT_PATTERN = "INSERT DATA { GRAPH ?_g_iri { <s> <p> <o> }}"