Metadata-Version: 2.1
Name: tehran-stocks
Version: 0.5.3
Summary: DataDownloader for Tehran stock market
Home-page: http://github.com/ghodsizadeh/tehran-stocks
Author: Mehdi Ghodsizadeh
Author-email: mehdi.ghodsizadeh@gmail.com
License: MIT
Description: # Tehran Stock Market
        
        [![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/)
        ![PyPI - Downloads](https://img.shields.io/pypi/dw/tehran_stocks.svg?color=blue)
        [![PyPI version](https://badge.fury.io/py/tehran-stocks.svg)](https://badge.fury.io/py/tehran-stocks)
        [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)
        
        <!-- ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tehran-stocks.svg) -->
        
        A python package that helps to access TCCIM stock price history, Using OOP Interface
        
        ## Features
        
        - Download All stocks prices
        - Download prices from a group (i.e ETFs or cars, etc.)
        - Download Price history of one specific Stock
        - After first setup available offline.
        - CommandLine Interface
        - Export data to csv, excel or Stata(dta)
        - Compatible with `sqlalchemy`
        - Compatible with `PANDAS`
        - Based on light `sqlite`
        
        ## 0 - Install
        
        ```bash
        pip install tehran_stocks
        ```
        
        ## 1- Initialization
        
        For first use you need initialize the database
        
        ### 1-1 Command line
        
        ```bash
        ts-get init  # Set up to sqlite database
        ```
        
        ### 1-2 Python
        
        ```python
        import tehran_stocks
        # On first import package initialize itself
        ```
        
        During initialization you will prompt for downloading all prices. if you answer yes it will download all prices, otherwise you can download data
        
        ## 2- Download and Update prices
        
        ### 2-1 Command line
        
        ```bash
        ts-get update # update  all price , or download all if no price exist
        ts-get  group 34 ## 34 is the code for car's group.
        ts-get get_groups ## get group name and group codes
        ```
        
        ### 2-2 Python
        
        ```python
        from tehran_stocks import get_all_price, Stocks, update_group
        
        get_all_price() # download and(or) update all prices
        
        update_group(34) #download and(or) update Stocks in groupCode = 34 (Cars)
        
        Stocks.get_group() # to see list of group codes
        ```
        
        ## 3- Access Data
        
        To access data you can use `Stocks` which is an customized `sqlalchemy` object, which helps you to find prices on an easy way.
        
        ### 3-1 Search Stocks
        
        ```python
        from tehran_stocks import Stocks, db
        
        # You can use query to find stocks
        stock = Stocks.query.filter_by(name='كگل').first() #find by symbol(نماد)
        
        stock = Stocks.query.filter_by(code='35700344742885862').first() # find by code on tsetmc url
        
        stock = Stocks.query.filter(Stocks.title.like('%گل گهر%')).first() # Search by title
        
        stock_list = Stocks.query.filter_by(group_code =34).all() # find all Stocks in Khodro
        
        stock_list = Stocks.query.filter(Stocks.group_code.in_([13,34])).all() # all stocks in khodro and felezat
        
        
        ## (Advanced)or run sql query using orm or raw sql
        db.session.query(Stocks.group_code, Stocks.group_name).group_by(Stocks.group_code).all()
        
        db.session.execute('select group_code , group_name from stocks group by group_name').fetchall()
        ```
        
        Now easily access stock price and do whatever you want with `pandas` dataframes:
        
        ```python
        # use data as a pandas dataframe
        >>> stock.df #
              id               code        ticker  dtyyyymmdd    first     high      low    close        value      vol  openint per     open     last       date
        0  22491  35700344742885862  Gol-E-Gohar.    20040829  12000.0  12021.0  12000.0  12000.0  18841605000  1570000     2708   D  12000.0  12000.0 2004-08-29
        
        >>> stock.summary()
        Start date: 20040829
        End date: 20190714
        Total days: 2987
        
        >>> stock.update()
        # update stock price history
        
        # Export to your preferred format
        >>> stock.df.to_csv('price.csv')
        >>> stock.df.to_excel('price.xlsx')
        >>> stock.df.to_stata('price.dta')
        
        ```
        
        ## Todo
        
        - [x] Create Database
        - [x] Download Data
        - [x] CommandLine Support
        - [ ] Jalali Support
        
Platform: UNKNOWN
Requires-Python: >=3.6
Description-Content-Type: text/markdown
