Exemplo n.º 1
0
 def on_packagelist_cursor_changed(self, widget, data=None):
     (tree, cursor) = self.pkgview.get_selection().get_selected()
     resources_file = resolve_res(tree.get_value(cursor, 1))
     resources = ElementTree()
     resources.parse(resources_file['xml'])
     
     self.res.clear()
     for resource in resources.iterfind('item'):
         res_file = resolve_res(resource.text)
         res_in = [s for s in drawable_specifiers if s in res_file]
         if 'png' in res_file:
             res_img = gtk.gdk.pixbuf_new_from_file(res_file['png'])
         elif res_in:
             res_img = gtk.gdk.pixbuf_new_from_file(res_file[res_in[0]])
         elif 'xml' in res_file:
             # trace into this file
             deep_res = ElementTree()
             deep_res.parse(res_file['xml'])
             res_img = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, 1, 1)
             for item in deep_res.iterfind('item'):
                 if nsify('drawable') in item.attrib:
                     res_img = gtk.gdk.pixbuf_new_from_file(resolve_res(item.attrib[nsify('drawable')])['png'])
         else:
             res_img = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, 1, 1)
         self.res.append([
             resource.attrib['name'],
             resource.text,
             res_img,
             ])
Exemplo n.º 2
0
 def on_opentheme_activate(self, widget, data=None):
     manifest_file = 'themes/Cyanbread/AndroidManifest.xml'
     manifest = ElementTree()
     manifest.parse(manifest_file)
     for prospect in manifest.iterfind('theme/meta-data'):
         if prospect.attrib[nsify('name')] == 'com.tmobile.theme.redirections':
             redirections_id = prospect.attrib[nsify('resource')]
             break
     
     redirections_file = resolve_res(redirections_id)['xml']
     redirections = ElementTree()
     redirections.parse(redirections_file)
     for redir in redirections.iterfind('package-redirections'):
         self.pkgs.append([redir.attrib[nsify('name')], redir.attrib[nsify('resource')]])
Exemplo n.º 3
0
def parse_multiStop(urlArray, origin):
    depTimes=[]
    for urlPath in urlArray:
        try:
            xmlTree = ET(file=urllib2.urlopen(urlPath))
            # Check to see if there are any predictions at all
            # If attribute(dirTitleBecauseNoPredictions) exists, then there are no predictions.
            for node in xmlTree.iterfind('predictions'):
                #Get stop tag
                route_title = node.get('routeTitle')
                stop_tag = node.get('stopTag')
                #Create list of departure predictions
                if node.find('direction') is not None:
                    times=[]
                    for prediction in node.find('direction'): #predictions/direction/prediction
                        times.append(prediction.get('minutes'))
                    listElem = Element('Predictions')
                    stopElem = SubElement(listElem,'Stop')
                    stopElem.set('tag', stop_tag)
                    stopElem.set('times', times)
                    stopElem.set('route', route_title)
                    stopElem.set('direction', node.find('direction').get('title').__str__())
                    
                    # Insert in sorted order to depTimes
                    depTimes = insertTimes(depTimes, listElem, origin)
                    
        except HTTPError as e:
            print e
            print urlPath
            exit(1)
    return depTimes         
Exemplo n.º 4
0
    def parse_joints_from_urdf_etree(self, urdf: ElementTree):
        for joint_element in urdf.iterfind('joint'):
            joint = Joint(joint_element.get('name'),
                          joint_element.get('type', 'fixed'))
            origin = self._get_origin_from_urdf_element(joint_element)
            limit_element = joint_element.find('limit')

            axis = [1., 0., 0.] if joint_element.find('axis') == None \
                else np.array([float(f) for f in joint_element.find('axis').get('xyz', '1 0 0').split()])
            alignment_transform = (np.zeros(3),
                                   quat_between_two_vectors(
                                       np.array([1., 0., 0.]), axis))

            self.add_joint(
                joint_element.find('parent').get('link'),
                joint_element.find('child').get('link'),
                joint,
                local_pose0=multiply_transformations(origin,
                                                     alignment_transform),
                local_pose1=alignment_transform,
                lower_limit=float(limit_element.get('lower'))
                if limit_element is not None else None,
                upper_limit=float(limit_element.get('upper'))
                if limit_element is not None else None,
            )
Exemplo n.º 5
0
def getTestsField(filename,field):
  from xml.etree.ElementTree import ElementTree
  r = dict()
  doc = ElementTree(file=filename)
  for test in doc.iterfind('.//test'):
    if test.find('result').text=="ok":
      testName=test.attrib['id']
      r[testName]=test.find(field).text
  return r
Exemplo n.º 6
0
 def _make_curies(self, tree: etree.ElementTree):
     curies = {}
     # Extract `oboInOwl:id` or compact IRI for `owl:Class`
     for elem in tree.iterfind(_NS["owl"]["Class"]):
         iri = elem.get(_NS["rdf"]["about"])
         if iri is None:
             continue
         e = elem.find(_NS["oboInOwl"]["id"])
         id_: str = e.text if e is not None and e.text else self._compact_id(iri)
         curies[iri] = id_
     # Extract either `oboInOwl:shorthand` or `oboInOwl:id` for `owl:ObjectProperty`
     for elem in tree.iterfind(_NS["owl"]["ObjectProperty"]):
         iri = elem.get(_NS["rdf"]["about"])
         if iri is None:
             continue
         # attempt to extract the compact id of the term
         elem_id = elem.find(_NS["oboInOwl"]["id"])
         elem_sh = elem.find(_NS["oboInOwl"]["shorthand"])
         if elem_sh is not None and elem_sh.text is not None:
             curies[iri] = elem_sh.text
         elif elem_id is not None and elem_id.text is not None:
             curies[iri] = elem_id.text
         else:
             curies[iri] = self._compact_id(iri)
     # Compact IRI of owl:AnnotationProperty
     for elem in tree.iterfind(_NS["owl"]["AnnotationProperty"]):
         iri = elem.get(_NS["rdf"]["about"])
         if iri is None:
             continue
         # attempt to extract the compact id of the term
         elem_id = elem.find(_NS["oboInOwl"]["id"])
         elem_sh = elem.find(_NS["oboInOwl"]["shorthand"])
         if elem_sh is not None and elem_sh.text is not None:
             curies[iri] = elem_sh.text
         elif elem_id is not None and elem_id.text is not None:
             curies[iri] = elem_id.text
         else:
             curies[iri] = self._compact_id(iri)
     return curies
Exemplo n.º 7
0
    def tweets(self):
        tweets = []
        try:
            fileHandle = urllib2.urlopen(self._url)

            tree = ElementTree()
            tree.parse(fileHandle)

            tweets = [ Tweet(statusEl) for statusEl in tree.iterfind("status") ]

        except IOError:
            pass
        return tweets
Exemplo n.º 8
0
def parse_stops():
    for route in Route.objects.all():
        try:
            stopList = ET(file=urllib2.urlopen("http://webservices.nextbus.com/service/publicXMLFeed?command=routeConfig&a={0}&r={1}".format(route.agency.agency_tag, route.tag)))
            for child in stopList.iterfind('route/stop'):
                print child.attrib
                s = Stop(tag = child.get('tag'), title = child.get('title'), short_title = child.get('shortTitle'), point = Point(float(child.get('lat')), float(child.get('lon'))), stop_id = child.get('stopId') ,route = route)
                s.save()
        
        except urllib2.URLError as e:
            print "unable to connect to url for agency"# {0}, {1}".format(route.agency.agency_tag, route.tag)
            print e
        except:
            print 'tag:{0}, title:{1}, shortTitle:{2}'.format(child.get('tag'), child.get('title'), child.get('shortTitle'))
            return
Exemplo n.º 9
0
    def parse_links_from_urdf_etree(self,
                                    urdf: ElementTree,
                                    mesh_root_folder: Path,
                                    use_random_collision_colors=False):
        for link_element in urdf.iterfind('link'):
            link = Link(link_element.get('name'), RigidDynamic())

            collision_shapes = []
            for collision_element in link_element.iterfind('collision'):
                collision_shapes += self._parse_shapes(
                    collision_element, mesh_root_folder=mesh_root_folder)

            visual_not_simulated = sum(1 for _ in link_element.iterfind(
                'visual')) != 0 and len(collision_shapes) != 0

            visual_shapes = []
            for visual_element in link_element.iterfind('visual'):
                visual_shapes += self._parse_shapes(
                    visual_element,
                    mesh_root_folder=mesh_root_folder,
                    global_materials=self.materials,
                    set_visual_mesh_userdata=True,
                    sphere_instead_of_mesh=visual_not_simulated)
            """ Color collision shapes based on the colors used in visual shapes. """
            if not use_random_collision_colors:
                visual_colors = [
                    s.get_user_data()['color'] for s in visual_shapes
                    if s.get_user_data() is not None
                    and 'color' in s.get_user_data()
                ]
                if len(visual_colors) > 0:
                    mean_visual_color = np.mean(visual_colors, axis=0)
                    for s in collision_shapes:
                        URDFRobot.shape_update_user_data(
                            s, 'color', mean_visual_color)
            """ Ignore simulation of visual shape and rendering of collision if both are specified. """
            if visual_not_simulated:
                for s in visual_shapes:
                    s.set_flag(ShapeFlag.SIMULATION_SHAPE, False)
                for s in collision_shapes:
                    s.set_flag(ShapeFlag.VISUALIZATION, False)

            for s in visual_shapes + collision_shapes:
                link.actor.attach_shape(s)

            link.actor.set_mass(self._parse_mass(link_element))
            self.add_link(link)
Exemplo n.º 10
0
 def get_elem_with_attr(self, xml_file, elem_name, attr_list=[]):
     elem_list = []
     tree = ElementTree(file=xml_file)
     for node in tree.iterfind(elem_name):
         flag = True
         for attr in attr_list:
             if '=' in attr:
                 if node.get(attr.split('=')[0]) != attr.split('=')[1]:
                     flag = False
                     continue
             else:
                 if node.get(attr) is None:
                     flag = False
                     continue
         if flag:
             elem_list.append(node)
     return elem_list
Exemplo n.º 11
0
class PolishXMLTagConverter:
    def __init__(self, pos_convert_table):
        self.tree = ElementTree()
        self.pos_convert_table = {}
        with open(pos_convert_table, 'r') as f:
            for line in f:
                original, pos, tags = line.split()
                pos_tags = {'Pos': pos}
                if tags != '_':
                    for pos_tag in tags.split('|'):
                        tag, value = pos_tag.split('=')
                        pos_tags[tag] = value
                self.pos_convert_table[original] = pos_tags

    def load(self, fileobj):
        self.tree.parse(fileobj)
        self.sentences = []
        for xmlsentence in self.tree.iterfind("chunk/sentence"):
            sentence = {'text': []}
            i = -1
            for tok in xmlsentence:
                if tok.tag != 'tok':
                    continue
                i += 1
                value = tok.find('orth').text
                ctag = tok.find('lex/ctag').text
                sentence['text'] += [value]
                for tag, val in self.convertTag(ctag).iteritems():
                    tag = tag.lower()
                    val = val.lower()
                    if not tag in sentence:
                        sentence[tag] = {}
                    sentence[tag][i] = val
            if sentence['text'] == ['.']:
                print(sentence['text'])
                continue
            self.sentences += [sentence]
        return self.sentences

    def convertTag(self, tag):
        return self.pos_convert_table.get(tag, {'Pos': 'X'})

    def tagSentence(self, words):
        pass
Exemplo n.º 12
0
def xmlRecords(schema: tab.Schema,
               doc: XML.ElementTree, path: str, ns: Dict[str, str],
               eltRecords: Opt[RecordMaker] = None,
               simpleContent: bool = False) -> Iterator[Dict[str, Opt[tab.Value]]]:
    """
    >>> schema = eltSchema(XSD.the(NAACCR1.ItemDef, '*'))
    >>> ea = xmlRecords(doc=NAACCR1.ndd180, schema=schema,
    ...                 path='./n:ItemDefs/n:ItemDef',
    ...                 ns=NAACCR1.ns)
    >>> list(ea)[:3]
    ... # doctest: +NORMALIZE_WHITESPACE +ELLIPSIS
    [{'naaccrId': 'recordType', 'naaccrNum': 10, ...},
     {'naaccrId': 'registryType', 'naaccrNum': 30, ...},
     {'naaccrId': 'naaccrRecordVersion', 'naaccrNum': 50, ...}]
    """
    getRecords = eltRecords or eltDict
    data = (record
            for elt in doc.iterfind(path, ns)
            for record in getRecords(elt, schema, simpleContent))
    return data
Exemplo n.º 13
0
# start of this month.
current_date = start_date = datetime.date(2010, 7, 1)
day = datetime.timedelta(days=1)
end_date = datetime.date.today()

pv_data = []

for i in range((end_date - start_date).days):
	try:
		html = html_for_day(current_date)
	except urllib2.URLError, e:
		continue
	finally:
		current_date = current_date + day

	tree = ElementTree()
	tree.parse(handle_illformed_xml(html))
	items = tree.iterfind('item')
	pv_data.extend(map(item_to_tuple, items))


pv = DataFrame.from_records(pv_data, index='timestamp', columns=["timestamp", "expost"])
fig = pyplot.figure()
rolling_max(pv, 4*24*30).plot(rot=15)
pyplot.title("Solar Photovoltaic production in Amprion's network Germany")
pyplot.ylabel("Rolling month maximum power produced [MW]")
pyplot.xlabel("Date")
pyplot.grid()
pyplot.savefig('ampiron.png')
Exemplo n.º 14
0
tree = ElementTree()

if (len(argv) < 3):
    print "specify an input & output filename. input is osm, output is geojson"
    exit()

tree.parse(argv[1])

geojson = { "type": "FeatureCollection", "features": [] }

nodeidx = {}

print 'mapping nodes'

for n in tree.iterfind('node'):
    nodeidx[n.attrib['id']] = [float(n.attrib['lon']), float(n.attrib['lat'])]

print 'mapping ways'

# okay, so a way is like:
#  <way ... user='******' visible='true' version='4' ...>
#    <nd ref='290905840' />
#    ... more nodes
#    <tag k='name' v='San Bonifacio' />
#    ... more tags
#  </way>
for w in tree.iterfind('way'):
    # okay, so there aren't that many tags for ways,
    # so just find them all instead of trying some janky XPath magic
    tags = {}
Exemplo n.º 15
0
import json
tree = ElementTree()

if (len(argv) < 3):
    print "specify an input & output filename, and year. input is osm, output is geojson"
    exit()

tree.parse(argv[1])

geojson = { "type": "FeatureCollection", "features": [] }

nodeidx = {}

print 'mapping nodes'

for n in tree.iterfind('node'):
    if (n.attrib.has_key('user')):
        pt = {
            "type": "Feature",
            "geometry": {
                "type": 'Point',
                "coordinates": [float(n.attrib['lon']), float(n.attrib['lat'])]
            },
            "properties": {
                "user": n.attrib['user'],
                "version": n.attrib['version'],
                "timestamp": time.mktime(datetime.strptime(n.attrib['timestamp'], '%Y-%m-%dT%H:%M:%SZ').utctimetuple())
            }
        }
        geojson['features'].append(pt)
Exemplo n.º 16
0
import json
tree = ElementTree()

if (len(argv) < 3):
    print "specify an input & output filename, and year. input is osm, output is geojson"
    exit()

tree.parse(argv[1])

geojson = {"type": "FeatureCollection", "features": []}

nodeidx = {}

print 'mapping nodes'

for n in tree.iterfind('node'):
    if (n.attrib.has_key('user')):
        pt = {
            "type": "Feature",
            "geometry": {
                "type": 'Point',
                "coordinates":
                [float(n.attrib['lon']),
                 float(n.attrib['lat'])]
            },
            "properties": {
                "user":
                n.attrib['user'],
                "version":
                n.attrib['version'],
                "timestamp":
Exemplo n.º 17
0
class Parse:
    u"""
	传入接口参数xml文件,name
	最终获取需要的参数
	"""
    def __init__(self, name):
        u"""
		:param name:xml具体文件,以data为根目录
		"""
        self._log = Database.logging
        self._name = name
        self._path = os.getcwd().split(
            'interface')[0] + 'interface' + os.sep + 'data' + os.sep
        self._file = self._path + self._name
        self._log.info(u'解析参数文件: %s' % self._file)
        self._tree = ElementTree(file=self._file)

    def _parse_xml(self):
        u"""
		解析xml,获取所有二层节点,根据节点拼接正则
		:return: 正则模型pattern 如['<test1>(.*?)</test1>', '<node2>(.*?)</node2>']
		"""
        roots = self._tree.getroot()
        pattern = []
        for node in roots:
            patt = '<%s>(.*?)</%s>' % (node.tag, node.tag)
            pattern.append(patt)
        return pattern

    def _get_parm(self, pattern):
        u"""
		通过正则匹配到标签,获取标签下数据,返回数据即接口参数
		:param pattern: 要匹配的正则,例如<Manufacturer>(.*?)</Manufacturer>
		:return: 获取到的参数,queryinfo,便签下的全部数据
		"""
        try:
            with open(self._file, 'r', encoding='utf8') as f:
                content = ''.join([i.strip() for i in f.readlines()])
            matches = re.findall(pattern, content)
            self._log.info(u'获取参数:%s' % matches)
            return matches
        except FileNotFoundError as msg:
            self._log.error(msg)

    def _get_total(self):
        u"""
		获得response中总记录条数
		:return: 返回记录数count(1)
		"""
        for elem in self._tree.iterfind('Record1/TotalCount'):
            total = elem.text
        try:
            self._log.info('parse xml get total:%s' % total)
            return total
        except UnboundLocalError as msg:
            self._log.error('there\'re no total node. The error message:%s' %
                            msg)

    def _get_tag_value(self, node):
        u"""
		获取某标签中的value值,将标签名称为此的value写入list中
		:param node: 具体node参数
		:return: 返回最终值组成的list
		"""
        result = []
        for elem in self._tree.iterfind(node):
            result.append(elem.text)
        # logging.info('paras xml get tag value %s' % result)
        return result

    def _set_current_page(self, node, page):
        u"""
		修改显示的当前页数,实现翻页
		:param node: 要修改页数的二层根节点,string
		:param page: 修改成第page页
		:return: 重写xml文件
		"""
        full_node = node + '/SqlQuery/PageInfo/CurrentPage'
        for elem in self._tree.iterfind(full_node):
            elem.text = str(page)
        with open(self._file, 'wb') as f:
            self._tree.write(f, encoding='UTF-8', xml_declaration=True)

    def update_value(self, node, value):
        u"""
		修改xml内容
		:param node: 具体要修改的标签
		:param value: 修改后的值
		:return: 重写xml文件
		"""
        for elem in self._tree.iterfind(node):
            elem.text = str(value)
        with open(self._file, 'wb') as f:
            self._tree.write(f, encoding='UTF-8', xml_declaration=True)

    def get_case_param(self,
                       total=0,
                       change=0,
                       page=1,
                       tag='',
                       para='queryInfo'):
        u"""
		封装xml各方法,实现参数、标签值的获取和xml的改变
		:param total: 是否计算total,一般与result.xml合用,1是获取,0不获取,默认为不获取
		:param change: 是否改变xml,一般与非结果xml合用,1为改变,默认为0不改变,改变显示页数
		:param page: 为当前页数current,page为改变值
		:param tag: 标签名称,例如'Record/MAN_ID','Manufacturer'
		:param para: 拼凑xml参数时,key的值,默认为queryInfo
		:return: 返回取值结果,接口参数param,total值 re,
		"""
        if self._name != 'result.xml' and change == 0:
            # 获取接口参数,访问接口,返回结果result
            pattern = self._parse_xml()
            try:
                for pat in pattern:
                    if tag in pat:
                        self._log.info(u'匹配正则: %s' % pat)
                        param = self._get_parm(pat)
                parm = {para: param}
                return parm
            except UnboundLocalError as msg:
                self._log.error(u'没有匹配到正则,获取参数失败。error:%' % msg)

        elif self._name != 'result.xml' and change == 1:
            self._set_current_page(tag, page)

        elif self._name == 'result.xml' and total == 1:  # 解析结果文件,用以断言
            amount = self._get_total()  # 获取total值
            return amount
        else:
            tag_value = self._get_tag_value(tag)
            return tag_value
Exemplo n.º 18
0
tree = ElementTree()

if (len(argv) < 3):
    print "specify an input & output filename. input is osm, output is geojson"
    exit()

tree.parse(argv[1])

geojson = {"type": "FeatureCollection", "features": []}

nodeidx = {}

print 'mapping nodes'

for n in tree.iterfind('node'):
    nodeidx[n.attrib['id']] = [float(n.attrib['lon']), float(n.attrib['lat'])]

print 'mapping ways'

# okay, so a way is like:
#  <way ... user='******' visible='true' version='4' ...>
#    <nd ref='290905840' />
#    ... more nodes
#    <tag k='name' v='San Bonifacio' />
#    ... more tags
#  </way>
for w in tree.iterfind('way'):
    # okay, so there aren't that many tags for ways,
    # so just find them all instead of trying some janky XPath magic
    tags = {}