Skip to content

Instantly share code, notes, and snippets.

View tal95shah's full-sized avatar

Talha Gillani tal95shah

View GitHub Profile
from dataclasses import dataclass
@dataclass
class Employee(object):
id: int
name: str
if __name__ == '__main__':
emp = Employee(1,"Talha Gillani")
emp2= Employee(100,"Syed Talha Gillani")
print("emp:{}".format(emp))
@tal95shah
tal95shah / finalAPIWrapper.py
Created July 10, 2018 15:24
Github User data wrapper using dataclasses.
import requests
from dataclasses import dataclass,field
from dateutil import parser
from datetime import datetime
# GithubAPIWrapper
@dataclass
class GithubWrapper(object):
login: str
id: int
node_id: str
@tal95shah
tal95shah / finalAPIwrapper-old-way.py
Created July 10, 2018 15:17
Github's User data API Wrapper Old Way
import requests
from dateutil import parser
from datetime import datetime
# GithubAPIWrapper
class GithubWrapper(object):
def __init__(self,login: str,
id: int,
node_id: str,
avatar_url: str,
gravatar_id: str,
@tal95shah
tal95shah / inheritance-customer-class.py
Created July 10, 2018 14:40
Inheritance used in dataclasses.
from dataclasses import dataclass
from typing import Any
@dataclass
class Customer(object):
customer_id: Any = 2.0
name: str = ""
@dataclass
class CustomerExtended(Customer):
address: str = ""
customer_id: int = 1
@tal95shah
tal95shah / post-init-employee-class.py
Created July 10, 2018 14:31
Post-Init method of a dataclass --- Called after __init__ is called.
from dataclasses import dataclass,field
@dataclass
class Employee(object):
id: int = field(compare=True)
name: str = field(compare=False)
salary: int = field(compare=True)
def __post_init__(self):
self.name=self.name.upper()
print("post_init() called")
@tal95shah
tal95shah / sortable-employee-class.py
Created July 10, 2018 14:27
Sortable Dataclasses with field objects.
from dataclasses import dataclass,field
@dataclass(frozen=True,order=True)
class Employee(object):
id: int = field(compare=True)
name: str = field(compare=False)
salary: int = field(compare=True)
if __name__ == '__main__':
emp = Employee(1,"Talha Gillani",5000)
emp2= Employee(100,"Syed Talha Gillani",10000)
@tal95shah
tal95shah / sortable-without-field-employee-class.py
Created July 10, 2018 14:23
Sortable Dataclasses without field objects
from dataclasses import dataclass
@dataclass(frozen=True,order=True)
class Employee(object):
id: int
name: str
salary: int
if __name__ == '__main__':
emp = Employee(1,"Talha Gillani",5000)
emp2= Employee(100,"Syed Talha Gillani",10000)
@tal95shah
tal95shah / immutable-employee-class.py
Created July 10, 2018 14:06
Immutable Dataclass Employee
from dataclasses import dataclass
@dataclass(frozen=True)
class Employee(object):
id: int
name: str
if __name__ == '__main__':
emp = Employee(1,"Talha Gillani")
emp2= Employee(100,"Syed Talha Gillani")
@tal95shah
tal95shah / new-way-employee-class.py
Created July 10, 2018 13:48
Python 3.7 using dataclasses way to code employee class
from dataclasses import dataclass
@dataclass
class Employee(object):
id: int
name: str
if __name__ == '__main__':
emp = Employee(1,"Talha Gillani")
emp2= Employee(2,"Syed Talha Gillani")
print("emp:{}".format(emp))
@tal95shah
tal95shah / old-way-employee-class.py
Created July 10, 2018 13:43
Python 3.6 way to code employee class
class Employee(object):
#Constructor
def __init__(self,id:int,name:str)->None:
self.id = id
self.name = name
#info we get when we say print(e) # e = Employee(id,name)
def __repr__(self):
return f'Employee(id={self.id!r},name={self.name!r})'