Viewing file: data.py (3.81 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/python # # Copyright (C) 2009 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License.
"""Contains the data classes of the Google Finance Portfolio Data API"""
__author__ = 'j.s@google.com (Jeff Scudder)'
import atom.core import atom.data import gdata.data import gdata.opensearch.data
GF_TEMPLATE = '{http://schemas.google.com/finance/2007/}%s'
class Commission(atom.core.XmlElement): """Commission for the transaction""" _qname = GF_TEMPLATE % 'commission' money = [gdata.data.Money]
class CostBasis(atom.core.XmlElement): """Cost basis for the portfolio or position""" _qname = GF_TEMPLATE % 'costBasis' money = [gdata.data.Money]
class DaysGain(atom.core.XmlElement): """Today's gain for the portfolio or position""" _qname = GF_TEMPLATE % 'daysGain' money = [gdata.data.Money]
class Gain(atom.core.XmlElement): """Total gain for the portfolio or position""" _qname = GF_TEMPLATE % 'gain' money = [gdata.data.Money]
class MarketValue(atom.core.XmlElement): """Market value for the portfolio or position""" _qname = GF_TEMPLATE % 'marketValue' money = [gdata.data.Money]
class PortfolioData(atom.core.XmlElement): """Data for the portfolio""" _qname = GF_TEMPLATE % 'portfolioData' return_overall = 'returnOverall' currency_code = 'currencyCode' return3y = 'return3y' return4w = 'return4w' market_value = MarketValue return_y_t_d = 'returnYTD' cost_basis = CostBasis gain_percentage = 'gainPercentage' days_gain = DaysGain return3m = 'return3m' return5y = 'return5y' return1w = 'return1w' gain = Gain return1y = 'return1y'
class PortfolioEntry(gdata.data.GDEntry): """Describes an entry in a feed of Finance portfolios""" portfolio_data = PortfolioData
class PortfolioFeed(gdata.data.GDFeed): """Describes a Finance portfolio feed""" entry = [PortfolioEntry]
class PositionData(atom.core.XmlElement): """Data for the position""" _qname = GF_TEMPLATE % 'positionData' return_y_t_d = 'returnYTD' return5y = 'return5y' return_overall = 'returnOverall' cost_basis = CostBasis return3y = 'return3y' return1y = 'return1y' return4w = 'return4w' shares = 'shares' days_gain = DaysGain gain_percentage = 'gainPercentage' market_value = MarketValue gain = Gain return3m = 'return3m' return1w = 'return1w'
class Price(atom.core.XmlElement): """Price of the transaction""" _qname = GF_TEMPLATE % 'price' money = [gdata.data.Money]
class Symbol(atom.core.XmlElement): """Stock symbol for the company""" _qname = GF_TEMPLATE % 'symbol' symbol = 'symbol' exchange = 'exchange' full_name = 'fullName'
class PositionEntry(gdata.data.GDEntry): """Describes an entry in a feed of Finance positions""" symbol = Symbol position_data = PositionData
class PositionFeed(gdata.data.GDFeed): """Describes a Finance position feed""" entry = [PositionEntry]
class TransactionData(atom.core.XmlElement): """Data for the transction""" _qname = GF_TEMPLATE % 'transactionData' shares = 'shares' notes = 'notes' date = 'date' type = 'type' commission = Commission price = Price
class TransactionEntry(gdata.data.GDEntry): """Describes an entry in a feed of Finance transactions""" transaction_data = TransactionData
class TransactionFeed(gdata.data.GDFeed): """Describes a Finance transaction feed""" entry = [TransactionEntry]
|