python-mastery/Solutions/8_1/stock.py

25 lines
680 B
Python
Raw Normal View History

2023-07-17 03:21:00 +02:00
# stock.py
from structure import Structure
from validate import String, PositiveInteger, PositiveFloat
class Stock(Structure):
name = String('name')
shares = PositiveInteger('shares')
price = PositiveFloat('price')
@property
def cost(self):
return self.shares * self.price
def sell(self, nshares):
self.shares -= nshares
if __name__ == '__main__':
from reader import read_csv_as_instances
from tableformat import create_formatter, print_table
portfolio = read_csv_as_instances('../../Data/portfolio.csv', Stock)
formatter = create_formatter('text')
print_table(portfolio, ['name','shares','price'], formatter)