-
Notifications
You must be signed in to change notification settings - Fork 1
/
classes.py
70 lines (60 loc) · 3.04 KB
/
classes.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
import csv
from datetime import datetime, timedelta, date
class WellsStartDates:
def __init__(self, id, name, pad, form, start_date):
self.id = id.strip()
if not len(self.id) == 9:
raise ValueError('Некорректный id скважины')
self.name = name.strip()
self.pad = pad.strip()
if str(self.pad) == '0':
self.pad = 'б/к'
self.form = form.strip()
if isinstance(start_date, str):
self.start_date = start_date.strip()
self.start_date = datetime.strptime(start_date, '%d%m%Y') #добавить обработку даты!!!!!!!!!!!!!!!!!!!!!!
def __repr__(self):
return f'Cкважина: {self.name}, куст: {self.pad},\
плаcт: {self.form}, дата запуска по фонду: {self.start_date}'
class WellMonthRates:
def __init__(self,id, name, date, oil, gas, water, injection, work_time):
self.id = id.strip()
if not len(self.id) == 9:
raise ValueError('Некорректный id скважины')
self.name = name.strip()
if isinstance(date, str):
self.date = date.strip()
self.date = datetime.strptime(date, '%d%m%Y')
self.oil = float(oil)
self.gas = float(gas)
self.water = float(water)
self.injection = float(injection)
self.work_time = float(work_time)
def __repr__(self):
return (f'Cкважина: {self.name}, дата: {self.date}, нефть т/мес: {self.oil},\
газ м3/мес: {self.gas}, вода м3/мес: {self.water}, время работы: {self.work_time}')
class WellTRPressure:
def __init__(self,id, name, date, bhp, buff_pressure, annular_pressure, line_pressure, form_pressure):
self.id = id.strip()
if not len(self.id) == 9:
raise ValueError('Некорректный id скважины')
self.name = name.strip()
if isinstance(date, str):
self.date = date.strip()
self.date = datetime.strptime(date, '%d%m%Y')
self.bhp = float(bhp)
self.buff_pressure = float(buff_pressure)
self.annular_pressure = float(annular_pressure)
self.line_pressure = float(line_pressure)
self.form_pressure = float(form_pressure)
def __repr__(self):
return f'Cкважина: {self.name}, дата: {self.date}, нефть т/мес: {self.bhp}, \
буферное давление: {self.buff_pressure}, затрубное давление: {self.annular_pressure}, \
линейное давление: {self.line_pressure}, пластовое давление {self.form_pressure}'
if __name__ == '__main__':
well1 = WellsStartDates('500408500', '4058', '6', 'НП 4', '01012017')
well2 = WellMonthRates('500408500', '4058', '01012018', '100', '100000', '10', '0', '700')
well3 = WellTRPressure('500408500', '4058', '01012019', '100', '10', '10', '50', '180')
print(well1)
print(well2)
print(well3)