Headline
CVE-2022-34054: perdido
The Perdido package in PyPI v0.0.1 to v0.0.2 was discovered to contain a code execution backdoor via the request package. This vulnerability allows attackers to access sensitive user information and digital currency keys, as well as escalate privileges.
Perdido Geoparser Python library
http://erig.univ-pau.fr/PERDIDO/
Installation
To install the latest stable version, you can use:
pip install --upgrade perdido
Quick start****Geoparsing
Import
from perdido.geoparser import Geoparser
Run geoparser
geoparser = Geoparser(lang=’fr’) doc = geoparser(‘Je visite la ville de Lyon, Annecy et Chamonix.’)
Get tokens
for token in doc: print(f’{token.text}\tlemma: {token.lemma}\tpos: {token.pos}’)
Print the XML-TEI output
print(doc.tei)
Print the GeoJSON output
print(doc.geojson)
Get the list of named entities
for entity in doc.named_entities: print(f’entity: {entity.text}\ttag: {entity.tag}’) if entity.tag == ‘place’: for t in entity.toponyms: print(f’ latitude: {t.lat}\tlongitude: {t.lng}\tsource {t.source}’)
Get the list of nested named entities
for nestedEntity in doc.nested_named_entities: print(f’entity: {nestedEntity.text}\ttag: {nestedEntity.tag}’) if nestedEntity.tag == ‘place’: for t in nestedEntity.toponyms: print(f’ latitude: {t.lat}\tlongitude: {t.lng}\tsource {t.source}’)
Shows named entities and nested named entities using the displacy library from spaCy
displacy.render(doc.to_spacy_doc(), style="ent", jupyter=True)
displacy.render(doc.to_spacy_doc(), style="span", jupyter=True)
Saving results
doc.to_xml(‘filename.xml’)
doc.to_geojson(‘filename.geojson’)
doc.to_csv(‘filename.csv’)
Geocoding
Import
from perdido.geocoder import Geocoder
Geocode a single place name
geocoder = Geocoder() doc = geocoder(‘Lyon’)
Geocode a list of place names
geocoder = Geocoder() doc = geocoder(['Lyon’, 'Annecy’, ‘Chamonix’])
Get the geojson result
print(doc.geojson)
Get the list of toponym candidates
for t in doc.toponyms: print(f’lat: {t.lat}\tlng: {t.lng}\tsource {t.source}\tsourceName {t.source_name}’)
Perdido Geoparser REST APIs
http://choucas.univ-pau.fr/docs#
Example: call REST API in Python
import requests
url = ‘http://choucas.univ-pau.fr/PERDIDO/api/’ service = ‘geoparsing’ data = {’content’: 'Je visite la ville de Lyon, Annecy et le Mont-Blanc.’} parameters = {’api_key’: 'demo’}
r = requests.post(url+service, params=parameters, json=data)
print(r.text)
Acknowledgements
Perdido is an active project still under developpement.
This work was partially supported by the following projects:
- GEODE (2020-2024): LabEx ASLAN (ANR-10-LABX-0081)
- GeoDISCO (2019-2020): MSH Lyon St-Etienne (ANR‐16‐IDEX‐0005)
- CHOUCAS (2017-2022): ANR (ANR-16-CE23-0018)
- PERDIDO (2012-2015): CDAPP and IGN