Lines 51-59
from __future__ import print_function
|
Link Here
|
---|
|
51 |
# /usr/share/common-licenses/AGPL-3; if not, see |
51 |
# /usr/share/common-licenses/AGPL-3; if not, see |
52 |
# <https://www.gnu.org/licenses/>. |
52 |
# <https://www.gnu.org/licenses/>. |
53 |
|
53 |
|
|
|
54 |
import io |
54 |
import re |
55 |
import re |
55 |
import os |
56 |
import os |
56 |
import sys |
57 |
import sys |
|
|
58 |
import warnings |
57 |
import copy |
59 |
import copy |
58 |
import json |
60 |
import json |
59 |
from email.utils import formatdate |
61 |
from email.utils import formatdate |
Lines 61-67
from email.utils import formatdate
|
Link Here
|
---|
|
61 |
import polib |
63 |
import polib |
62 |
import xml.etree.ElementTree as ET |
64 |
import xml.etree.ElementTree as ET |
63 |
|
65 |
|
64 |
from debian.deb822 import Deb822 |
66 |
from debian.deb822 import Deb822, Packages |
65 |
from . import helper |
67 |
from . import helper |
66 |
try: |
68 |
try: |
67 |
from typing import Iterable, Iterator, List, Optional, Tuple, Union # noqa F401 |
69 |
from typing import Iterable, Iterator, List, Optional, Tuple, Union # noqa F401 |
|
70 |
|
72 |
|
71 |
MODULE = 'Module' |
73 |
MODULE = 'Module' |
72 |
PYTHON = 'Python' |
74 |
PYTHON = 'Python' |
73 |
PYTHON_VERSION = 'PythonVersion' |
|
|
74 |
DEFINITION = 'Definition' |
75 |
DEFINITION = 'Definition' |
75 |
JAVASCRIPT = 'Javascript' |
76 |
JAVASCRIPT = 'Javascript' |
76 |
CATEGORY = 'Category' |
77 |
CATEGORY = 'Category' |
Lines 121-129
class UMC_Module(dict):
|
Link Here
|
---|
|
121 |
return None |
122 |
return None |
122 |
|
123 |
|
123 |
@property |
124 |
@property |
124 |
def python_version(self): |
125 |
def python_versions(self): |
125 |
# type: () -> float |
126 |
# type: () -> list[float] |
126 |
return 3 if self.get(PYTHON_VERSION, ['2.7'])[0].startswith('3') else 2.7 |
127 |
versions = [2.7] |
|
|
128 |
if '${python3:Provides}' in self['provides']: |
129 |
versions.append(3) |
130 |
if '${python:Provides}' not in self['provides']: |
131 |
versions.remove(2.7) |
132 |
return versions |
127 |
|
133 |
|
128 |
@property |
134 |
@property |
129 |
def js_path(self): |
135 |
def js_path(self): |
Lines 250-259
def read_modules(package, core=False):
|
Link Here
|
---|
|
250 |
modules = [] # type: List[UMC_Module] |
256 |
modules = [] # type: List[UMC_Module] |
251 |
|
257 |
|
252 |
file_umc_module = os.path.join('debian/', package + '.umc-modules') |
258 |
file_umc_module = os.path.join('debian/', package + '.umc-modules') |
|
|
259 |
file_control = os.path.join('debian/control') |
253 |
|
260 |
|
254 |
if not os.path.isfile(file_umc_module): |
261 |
if not os.path.isfile(file_umc_module): |
255 |
return modules |
262 |
return modules |
256 |
|
263 |
|
|
|
264 |
provides = [] |
265 |
with io.open(file_control, 'r', encoding='utf-8') as fd: |
266 |
with warnings.catch_warnings(): # debian/deb822.py:982: UserWarning: cannot parse package relationship "${python3:Depends}", returning it raw |
267 |
for pkg in Packages.iter_paragraphs(fd): |
268 |
if pkg.get('Package') == package: |
269 |
provides = [p[0]['name'] for p in pkg.relations['provides']] |
270 |
break |
271 |
|
257 |
with open(file_umc_module, 'rb') as fd: |
272 |
with open(file_umc_module, 'rb') as fd: |
258 |
for item in Deb822.iter_paragraphs(fd): |
273 |
for item in Deb822.iter_paragraphs(fd): |
259 |
item = dict((k, [v]) for k, v in item.iteritems()) # simulate dh_ucs.parseRfc822 behaviour |
274 |
item = dict((k, [v]) for k, v in item.iteritems()) # simulate dh_ucs.parseRfc822 behaviour |
Lines 265-270
def read_modules(package, core=False):
|
Link Here
|
---|
|
265 |
|
280 |
|
266 |
# single values |
281 |
# single values |
267 |
item['package'] = package |
282 |
item['package'] = package |
|
|
283 |
item['provides'] = provides |
268 |
module = UMC_Module(item) |
284 |
module = UMC_Module(item) |
269 |
if core: |
285 |
if core: |
270 |
if module.module_name != 'umc-core' or not module.xml_categories: |
286 |
if module.module_name != 'umc-core' or not module.xml_categories: |