Gerar dados falsos para testar

This commit is contained in:
2026-01-02 22:46:45 -01:00
parent 1e6551a2b1
commit 21f5d29a53
4 changed files with 150 additions and 26 deletions

View File

@@ -3,14 +3,13 @@ from typing import Any
from pymongo import MongoClient
from pymongo.collection import Collection
from pymongo.cursor import Cursor
from pymongo.errors import ConnectionFailure
try:
from utilsv2.log import logger
from utilsv2.parser import massage_magnitudes
except ModuleNotFoundError:
from log import logger
from parser import massage_magnitudes
logger = logging.getLogger(__name__)
@@ -32,8 +31,6 @@ def add_events(
db = client["main"]
coll = db[collection]
data = massage_magnitudes(data)
_res = coll.insert_many(data)
if _res.acknowledged:
@@ -65,7 +62,24 @@ def close(client: MongoClient) -> None:
logger.info("Closed the DB.")
def query_all(cli: MongoClient, collection: str) -> Any:
coll: Collection = cli.main[collection]
result = coll.find({})
for doc in result:
print(doc)
def filter_query(cli: MongoClient, collection: str, filter_by):
coll: Collection = cli.main[collection]
res = coll.find({""})
if __name__ == "__main__":
v = connect("mongodb://localhost:27017")
query_all(v, "quakes")
close(v)

View File

@@ -25,7 +25,7 @@ class Mag:
return f"mag: {self.mag}, type: {self.type}, agency: {self.agency}"
def toJSON(self):
return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
json.dumps({"Magnitude": self.mag, "Agency": self.agency})
def parse_event(event: list[str]) -> evtype:
@@ -57,7 +57,6 @@ def parse_event(event: list[str]) -> evtype:
_ret.update(parse_type_i(v))
case _:
pass
print(_ret)
return _ret
@@ -94,10 +93,10 @@ def parse_type_1(lines: list[str]) -> dict[str, Any] | None:
dt = parse_dt(line[:21])
dist_ind = line[21]
event_id = line[22]
lat = float(line[24:31])
long = float(line[30:39])
lat = float(line[23:30])
long = float(line[30:38])
depth = float(line[38:44])
mags = parse_mag(line[56:79])
mags = parse_mag(line[55:79])
line1.update(
{
"DateTime": dt,
@@ -111,7 +110,7 @@ def parse_type_1(lines: list[str]) -> dict[str, Any] | None:
)
else:
mags = parse_mag(line[56:79])
line1["Magnitudes"] += mags
line1["Magnitudes"].union(mags)
return line1
@@ -186,9 +185,11 @@ def parse_dt(_text: str, isStation=False) -> datetime | time:
return dt
def parse_mag(_text: str) -> list[Mag]:
mags = []
for mag in textwrap.wrap(_text, 8):
def parse_mag(_text: str) -> dict[str, Mag]:
mags = {}
for i in range(0, 3):
mag = _text[8 * i : 8 * (i + 1) - 1] # split every 8 chars
if not utils.is_empty(mag):
mags.append(Mag(float(mag[:3]), mag[3], mag[4:]))
mags[mag[3]] = {"Magnitude": float(mag[:4]), "Agency": mag[4:]}
return mags

View File

@@ -2,9 +2,14 @@ import logging
from io import TextIOWrapper
from typing import Any
from utilsv2 import utils
from utilsv2.log import logger
from utilsv2.nordic import evtype, parse_event, parse_stations_V1, sttype
try:
from utilsv2 import utils
from utilsv2.log import logger
from utilsv2.nordic import evtype, parse_event, parse_stations_V1, sttype
except ModuleNotFoundError:
import utils
from log import logger
from nordic import evtype, parse_event, parse_stations_V1, sttype
logger = logging.getLogger(__name__)
@@ -63,15 +68,6 @@ def extract_event(
return events, ev_stations
def massage_magnitudes(data: list[evtype]) -> list[evtype]:
data = data
for idx, ev in enumerate(data):
for jdx, mag in enumerate(ev["Magnitudes"]):
data[idx]["Magnitudes"][jdx] = mag.toJSON()
return data
def parse(fname: str):
_ret = read_file(fname)
if not isinstance(_ret, TextIOWrapper):