Reading CSV files from GitLab with csv, pandas and python-gitlab

wordcloud

Why I moved from GitHub to GitLab

I started learning Git with GitHub and used it for quite a while. Then Microsoft acquired GitHub in 2016 or so. I was not very comfortable with it considering how I feel about Microsoft's sneaky data collection policies (for example, Windows 10 appears to be one big data mining engine when you dig deeper into its processes that the first thing you need to do after installing Windows 10 is debloat it, i.e., remove bloatware, disable telemetry and tighten your privacy settings) and how the company that was once openly against Linux is now trying to influence open source software by buying its way into The Free Software Foundation (FSF). I was looking some alternatives and stumbled upon GitLab.

It did not take much time to realize that GitLab offers much more than GitHub. It offered a complete development to deployment service until GitHub. Back when GitHub used a third party Travis CI, GitLab already had its own CI/CD system available for all users. It offered better private repo features and free CI/CD even for free users. Since a chunk of open source loving developers migrated from GitHub to GitLab after the acquisition, Microsoft had increased GitHub features for free users and recently developed its own CI, but in my opinion GitLab is still far ahead.

With added security and features, also comes a bit of complexity. Firstly, GitLab blocks any requests without a user-agent possible considering them to be crawlers or bots. So, sometimes we need to explicitly specify a user-agent like Mozilla or Gecko, etc. Secondly, GitLab uses base64 encryption on all it's content. It's always not enough just to be able to access the file as it's encrypted. We need to decode it to use it. I didn't find much documentation online on reading a csv file from a GitLab repository and had to spend some time figuring it out, so this page might be useful for some.

[^top]

Reading a CSV file from GitLab with csv or pandas

CSV stands for Comma Seperated Values. A CSV file typically contains data values seperated by comma, or rarely by other delimeters like a semi-colon. The file I am trying to read is called 'mpg.csv' located in my GitLab public repository https://gitlab.com/datasets_a/mpg-data.

Step 1

We can use either of the following Python packages to read the URL. Both are built-in packages in Python and need not be installed seperately.

Step 2

The data from the URL is returned in the form of a text string, which will be decoded using the StringIO function of Python io module.

Step 3

The data read from the URL will be in raw format and needs to be converted to a structured format. We can use either of the following to do that.

  • Python's default csv module. The csv.Reader() function is used to convert data into delimited strings, whereas the csv.Dictreader() function can be used to convert data into a Python dictionary format.
  • pandas (short for panel data) library. The pandas.read_csv module is specifically what we will use here.

Method 1: Using requests and csv

with csv.Reader
In [1]:
import csv, requests
from io import StringIO

url = "https://gitlab.com/datasets_a/mpg-data/-/raw/master/mpg.csv"
# Reading URL data
s = requests.get(url).content
# Decoding & formatting
data=csv.reader(StringIO(s.decode('utf-8')))
#Printing the first 5 rows
for row in list(data)[:5]:
    print(row)
['', 'manufacturer', 'model', 'displ', 'year', 'cyl', 'trans', 'drv', 'cty', 'hwy', 'fl', 'class']
['1', 'audi', 'a4', '1.8', '1999', '4', 'auto(l5)', 'f', '18', '29', 'p', 'compact']
['2', 'audi', 'a4', '1.8', '1999', '4', 'manual(m5)', 'f', '21', '29', 'p', 'compact']
['3', 'audi', 'a4', '2', '2008', '4', 'manual(m6)', 'f', '20', '31', 'p', 'compact']
['4', 'audi', 'a4', '2', '2008', '4', 'auto(av)', 'f', '21', '30', 'p', 'compact']
with csv.DictReader
In [2]:
# Decoding and formatting
data=list(csv.DictReader(StringIO(s.decode('utf-8'))))
# Printing the first 2 rows
data[:2]
Out[2]:
[{'': '1',
  'manufacturer': 'audi',
  'model': 'a4',
  'displ': '1.8',
  'year': '1999',
  'cyl': '4',
  'trans': 'auto(l5)',
  'drv': 'f',
  'cty': '18',
  'hwy': '29',
  'fl': 'p',
  'class': 'compact'},
 {'': '2',
  'manufacturer': 'audi',
  'model': 'a4',
  'displ': '1.8',
  'year': '1999',
  'cyl': '4',
  'trans': 'manual(m5)',
  'drv': 'f',
  'cty': '21',
  'hwy': '29',
  'fl': 'p',
  'class': 'compact'}]

Method 2: Using urllib and csv

with csv.Reader
In [3]:
import csv
from urllib.request import Request, urlopen
from io import StringIO

url = "https://gitlab.com/datasets_a/mpg-data/-/raw/master/mpg.csv"
# Reading URL data. 
myHeaders = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)'} # Even some random text works as headers
url_request  = Request(url, headers=myHeaders)
response = urlopen(url_request).read()
# Decoding and formatting
data=csv.reader(StringIO(response.decode('utf-8')))
#Printing first 5 rows
for row in list(data)[:5]:
    print(row)
['', 'manufacturer', 'model', 'displ', 'year', 'cyl', 'trans', 'drv', 'cty', 'hwy', 'fl', 'class']
['1', 'audi', 'a4', '1.8', '1999', '4', 'auto(l5)', 'f', '18', '29', 'p', 'compact']
['2', 'audi', 'a4', '1.8', '1999', '4', 'manual(m5)', 'f', '21', '29', 'p', 'compact']
['3', 'audi', 'a4', '2', '2008', '4', 'manual(m6)', 'f', '20', '31', 'p', 'compact']
['4', 'audi', 'a4', '2', '2008', '4', 'auto(av)', 'f', '21', '30', 'p', 'compact']
In [4]:
import csv
from urllib.request import Request, urlopen
from io import StringIO

url = "https://gitlab.com/datasets_a/mpg-data/-/raw/master/mpg.csv"
# Reading URL data
myHeaders = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)'} # Even some random text works as headers
url_request  = Request(url, headers=myHeaders)
response = urlopen(url_request).read()
data=list(csv.DictReader(StringIO(response.decode('utf-8'))))
# Printing the first 2 rows
data[:2]
Out[4]:
[{'': '1',
  'manufacturer': 'audi',
  'model': 'a4',
  'displ': '1.8',
  'year': '1999',
  'cyl': '4',
  'trans': 'auto(l5)',
  'drv': 'f',
  'cty': '18',
  'hwy': '29',
  'fl': 'p',
  'class': 'compact'},
 {'': '2',
  'manufacturer': 'audi',
  'model': 'a4',
  'displ': '1.8',
  'year': '1999',
  'cyl': '4',
  'trans': 'manual(m5)',
  'drv': 'f',
  'cty': '21',
  'hwy': '29',
  'fl': 'p',
  'class': 'compact'}]

Method 3: Using requests and pandas

In [5]:
import requests
from io import StringIO
import pandas as pd

url = "https://gitlab.com/datasets_a/mpg-data/-/raw/master/mpg.csv"
# Reading URL, decoding and converting it to pandas dataframe using read_csv
df = pd.read_csv(StringIO(requests.get(url).text))
# Printing the first 5 rows of the dataframe
df.head()
Out[5]:
Unnamed: 0 manufacturer model displ year cyl trans drv cty hwy fl class
0 1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
1 2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
2 3 audi a4 2.0 2008 4 manual(m6) f 20 31 p compact
3 4 audi a4 2.0 2008 4 auto(av) f 21 30 p compact
4 5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact

Method 4: Using urllib and pandas

In [6]:
from urllib.request import Request, urlopen
from io import StringIO
import pandas as pd

url = "https://gitlab.com/datasets_a/mpg-data/-/raw/master/mpg.csv"
# Reading URL data
myHeaders = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)'} # Even some random text works as headers
url_request  = Request(url, headers=myHeaders)
response = urlopen(url_request).read()
# Decoding and converting it to pandas dataframe using read_csv
df = pd.read_csv(StringIO(response.decode('utf-8')))
# Printing the first 5 rows of the dataframe
df.head()
Out[6]:
Unnamed: 0 manufacturer model displ year cyl trans drv cty hwy fl class
0 1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
1 2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
2 3 audi a4 2.0 2008 4 manual(m6) f 20 31 p compact
3 4 audi a4 2.0 2008 4 auto(av) f 21 30 p compact
4 5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact

[^top]

Reading a CSV file from GitLab with python-gitlab

python-gitlab is a Python package providing access to the GitLab server API.

Install with Anaconda

conda install -c conda-forge python-gitlab

Let's explore the package a little.

In [7]:
# Importing library
import gitlab 


Next, we will use the gitlab.Gitlab class to create a Gitlab object gl. The URL in question belongs to my public repository, so we don't need to pass any authentication tokens to access it. However, if we were to access a private repository, we will need to pass a personal token, an oauth token or a job token for authentication.

In [8]:
# anonymous gitlab instance, read-only for public resources
gl=gitlab.Gitlab('https://gitlab.com/')


A Gitlab account typically consists of groups and projects. A group may contain sub-groups or projects, and each sub-group may have more projects or its own sub-groups.

Group
|___ Project
|___ Project
|___ Sub-group
      |___ Project
      |___ Sub-group
            |___ Project

Each group or project in GitLab has a unique ID. Let's get a list of projects and their information under one of my public groups with group id 9799560

In [9]:
# get the group with id == 9799560
group = gl.groups.get(9799560)
for project in group.projects.list():
    print('-----------------------')
    print(project)
-----------------------
<class 'gitlab.v4.objects.GroupProject'> => {'id': 23134556, 'description': '', 'name': 'Python for Data Science', 'name_with_namespace': 'datasets / Python for Data Science', 'path': 'python-for-data-science', 'path_with_namespace': 'datasets_a/python-for-data-science', 'created_at': '2020-12-16T05:31:29.818Z', 'default_branch': 'master', 'tag_list': [], 'ssh_url_to_repo': '[email protected]:datasets_a/python-for-data-science.git', 'http_url_to_repo': 'https://gitlab.com/datasets_a/python-for-data-science.git', 'web_url': 'https://gitlab.com/datasets_a/python-for-data-science', 'readme_url': 'https://gitlab.com/datasets_a/python-for-data-science/-/blob/master/README.md', 'avatar_url': None, 'forks_count': 0, 'star_count': 0, 'last_activity_at': '2020-12-17T13:08:27.730Z', 'namespace': {'id': 9799560, 'name': 'datasets', 'path': 'datasets_a', 'kind': 'group', 'full_path': 'datasets_a', 'parent_id': None, 'avatar_url': None, 'web_url': 'https://gitlab.com/groups/datasets_a'}, '_links': {'self': 'https://gitlab.com/api/v4/projects/23134556', 'issues': 'https://gitlab.com/api/v4/projects/23134556/issues', 'merge_requests': 'https://gitlab.com/api/v4/projects/23134556/merge_requests', 'repo_branches': 'https://gitlab.com/api/v4/projects/23134556/repository/branches', 'labels': 'https://gitlab.com/api/v4/projects/23134556/labels', 'events': 'https://gitlab.com/api/v4/projects/23134556/events', 'members': 'https://gitlab.com/api/v4/projects/23134556/members'}, 'packages_enabled': True, 'empty_repo': False, 'archived': False, 'visibility': 'public', 'resolve_outdated_diff_discussions': False, 'container_registry_enabled': True, 'container_expiration_policy': {'cadence': '1d', 'enabled': False, 'keep_n': 10, 'older_than': '90d', 'name_regex': '.*', 'name_regex_keep': None, 'next_run_at': '2020-12-17T05:31:29.841Z'}, 'issues_enabled': True, 'merge_requests_enabled': True, 'wiki_enabled': True, 'jobs_enabled': True, 'snippets_enabled': True, 'service_desk_enabled': True, 'service_desk_address': 'incoming+datasets-a-python-for-data-science-23134556-issue-@incoming.gitlab.com', 'can_create_merge_request_in': False, 'issues_access_level': 'enabled', 'repository_access_level': 'enabled', 'merge_requests_access_level': 'enabled', 'forking_access_level': 'enabled', 'wiki_access_level': 'enabled', 'builds_access_level': 'enabled', 'snippets_access_level': 'enabled', 'pages_access_level': 'enabled', 'operations_access_level': 'enabled', 'analytics_access_level': 'enabled', 'emails_disabled': None, 'shared_runners_enabled': True, 'lfs_enabled': True, 'creator_id': 4094213, 'import_status': 'none', 'open_issues_count': 0, 'ci_default_git_depth': 50, 'ci_forward_deployment_enabled': True, 'public_jobs': True, 'build_timeout': 3600, 'auto_cancel_pending_pipelines': 'enabled', 'build_coverage_regex': None, 'ci_config_path': '', 'shared_with_groups': [], 'only_allow_merge_if_pipeline_succeeds': False, 'allow_merge_on_skipped_pipeline': None, 'request_access_enabled': True, 'only_allow_merge_if_all_discussions_are_resolved': False, 'remove_source_branch_after_merge': True, 'printing_merge_request_link_enabled': True, 'merge_method': 'merge', 'suggestion_commit_message': None, 'auto_devops_enabled': False, 'auto_devops_deploy_strategy': 'continuous', 'autoclose_referenced_issues': True, 'approvals_before_merge': 0, 'mirror': False, 'external_authorization_classification_label': '', 'marked_for_deletion_at': None, 'marked_for_deletion_on': None, 'requirements_enabled': True, 'compliance_frameworks': []}
-----------------------
<class 'gitlab.v4.objects.GroupProject'> => {'id': 23052125, 'description': '', 'name': 'Sentiment Analysis of Indian Print Media News', 'name_with_namespace': 'datasets / Sentiment Analysis of Indian Print Media News', 'path': 'sentiment-analysis-of-indian-print-media-news', 'path_with_namespace': 'datasets_a/sentiment-analysis-of-indian-print-media-news', 'created_at': '2020-12-11T17:16:27.339Z', 'default_branch': 'master', 'tag_list': [], 'ssh_url_to_repo': '[email protected]:datasets_a/sentiment-analysis-of-indian-print-media-news.git', 'http_url_to_repo': 'https://gitlab.com/datasets_a/sentiment-analysis-of-indian-print-media-news.git', 'web_url': 'https://gitlab.com/datasets_a/sentiment-analysis-of-indian-print-media-news', 'readme_url': None, 'avatar_url': None, 'forks_count': 0, 'star_count': 0, 'last_activity_at': '2020-12-11T17:16:27.339Z', 'namespace': {'id': 9799560, 'name': 'datasets', 'path': 'datasets_a', 'kind': 'group', 'full_path': 'datasets_a', 'parent_id': None, 'avatar_url': None, 'web_url': 'https://gitlab.com/groups/datasets_a'}, '_links': {'self': 'https://gitlab.com/api/v4/projects/23052125', 'issues': 'https://gitlab.com/api/v4/projects/23052125/issues', 'merge_requests': 'https://gitlab.com/api/v4/projects/23052125/merge_requests', 'repo_branches': 'https://gitlab.com/api/v4/projects/23052125/repository/branches', 'labels': 'https://gitlab.com/api/v4/projects/23052125/labels', 'events': 'https://gitlab.com/api/v4/projects/23052125/events', 'members': 'https://gitlab.com/api/v4/projects/23052125/members'}, 'packages_enabled': True, 'empty_repo': False, 'archived': False, 'visibility': 'public', 'resolve_outdated_diff_discussions': False, 'container_registry_enabled': True, 'container_expiration_policy': {'cadence': '1d', 'enabled': False, 'keep_n': 10, 'older_than': '90d', 'name_regex': '.*', 'name_regex_keep': None, 'next_run_at': '2020-12-12T17:16:27.355Z'}, 'issues_enabled': True, 'merge_requests_enabled': True, 'wiki_enabled': True, 'jobs_enabled': True, 'snippets_enabled': True, 'service_desk_enabled': True, 'service_desk_address': 'incoming+datasets-a-sentiment-analysis-of-indian-print-media-news-23052125-issue-@incoming.gitlab.com', 'can_create_merge_request_in': False, 'issues_access_level': 'enabled', 'repository_access_level': 'enabled', 'merge_requests_access_level': 'enabled', 'forking_access_level': 'enabled', 'wiki_access_level': 'enabled', 'builds_access_level': 'enabled', 'snippets_access_level': 'enabled', 'pages_access_level': 'enabled', 'operations_access_level': 'enabled', 'analytics_access_level': 'enabled', 'emails_disabled': False, 'shared_runners_enabled': True, 'lfs_enabled': True, 'creator_id': 4094213, 'import_status': 'none', 'open_issues_count': 0, 'ci_default_git_depth': 50, 'ci_forward_deployment_enabled': True, 'public_jobs': True, 'build_timeout': 3600, 'auto_cancel_pending_pipelines': 'enabled', 'build_coverage_regex': None, 'ci_config_path': '', 'shared_with_groups': [], 'only_allow_merge_if_pipeline_succeeds': False, 'allow_merge_on_skipped_pipeline': None, 'request_access_enabled': True, 'only_allow_merge_if_all_discussions_are_resolved': False, 'remove_source_branch_after_merge': True, 'printing_merge_request_link_enabled': True, 'merge_method': 'merge', 'suggestion_commit_message': None, 'auto_devops_enabled': False, 'auto_devops_deploy_strategy': 'continuous', 'autoclose_referenced_issues': True, 'approvals_before_merge': 0, 'mirror': False, 'external_authorization_classification_label': '', 'marked_for_deletion_at': None, 'marked_for_deletion_on': None, 'requirements_enabled': True, 'compliance_frameworks': []}
-----------------------
<class 'gitlab.v4.objects.GroupProject'> => {'id': 22838171, 'description': '', 'name': 'MPG data', 'name_with_namespace': 'datasets / MPG data', 'path': 'mpg-data', 'path_with_namespace': 'datasets_a/mpg-data', 'created_at': '2020-12-02T11:42:59.430Z', 'default_branch': 'master', 'tag_list': [], 'ssh_url_to_repo': '[email protected]:datasets_a/mpg-data.git', 'http_url_to_repo': 'https://gitlab.com/datasets_a/mpg-data.git', 'web_url': 'https://gitlab.com/datasets_a/mpg-data', 'readme_url': None, 'avatar_url': None, 'forks_count': 0, 'star_count': 0, 'last_activity_at': '2020-12-02T13:14:44.828Z', 'namespace': {'id': 9799560, 'name': 'datasets', 'path': 'datasets_a', 'kind': 'group', 'full_path': 'datasets_a', 'parent_id': None, 'avatar_url': None, 'web_url': 'https://gitlab.com/groups/datasets_a'}, '_links': {'self': 'https://gitlab.com/api/v4/projects/22838171', 'issues': 'https://gitlab.com/api/v4/projects/22838171/issues', 'merge_requests': 'https://gitlab.com/api/v4/projects/22838171/merge_requests', 'repo_branches': 'https://gitlab.com/api/v4/projects/22838171/repository/branches', 'labels': 'https://gitlab.com/api/v4/projects/22838171/labels', 'events': 'https://gitlab.com/api/v4/projects/22838171/events', 'members': 'https://gitlab.com/api/v4/projects/22838171/members'}, 'packages_enabled': True, 'empty_repo': False, 'archived': False, 'visibility': 'public', 'resolve_outdated_diff_discussions': False, 'container_registry_enabled': True, 'container_expiration_policy': {'cadence': '1d', 'enabled': False, 'keep_n': 10, 'older_than': '90d', 'name_regex': '.*', 'name_regex_keep': None, 'next_run_at': '2020-12-03T11:42:59.473Z'}, 'issues_enabled': True, 'merge_requests_enabled': True, 'wiki_enabled': True, 'jobs_enabled': True, 'snippets_enabled': True, 'service_desk_enabled': True, 'service_desk_address': '[email protected]', 'can_create_merge_request_in': False, 'issues_access_level': 'enabled', 'repository_access_level': 'enabled', 'merge_requests_access_level': 'enabled', 'forking_access_level': 'enabled', 'wiki_access_level': 'enabled', 'builds_access_level': 'enabled', 'snippets_access_level': 'enabled', 'pages_access_level': 'enabled', 'operations_access_level': 'enabled', 'analytics_access_level': 'enabled', 'emails_disabled': False, 'shared_runners_enabled': True, 'lfs_enabled': True, 'creator_id': 4094213, 'import_status': 'none', 'open_issues_count': 0, 'ci_default_git_depth': 50, 'ci_forward_deployment_enabled': True, 'public_jobs': True, 'build_timeout': 3600, 'auto_cancel_pending_pipelines': 'enabled', 'build_coverage_regex': None, 'ci_config_path': '', 'shared_with_groups': [], 'only_allow_merge_if_pipeline_succeeds': False, 'allow_merge_on_skipped_pipeline': None, 'request_access_enabled': False, 'only_allow_merge_if_all_discussions_are_resolved': False, 'remove_source_branch_after_merge': True, 'printing_merge_request_link_enabled': True, 'merge_method': 'merge', 'suggestion_commit_message': None, 'auto_devops_enabled': False, 'auto_devops_deploy_strategy': 'continuous', 'autoclose_referenced_issues': True, 'approvals_before_merge': 0, 'mirror': False, 'external_authorization_classification_label': '', 'marked_for_deletion_at': None, 'marked_for_deletion_on': None, 'requirements_enabled': True, 'compliance_frameworks': []}
-----------------------
<class 'gitlab.v4.objects.GroupProject'> => {'id': 22473676, 'description': 'This dataset contains about 1006 equally distributed images of 2 distinct types.', 'name': 'COVID Face Mask Detection Dataset', 'name_with_namespace': 'datasets / COVID Face Mask Detection Dataset', 'path': 'covid-face-mask-detection-dataset', 'path_with_namespace': 'datasets_a/covid-face-mask-detection-dataset', 'created_at': '2020-11-16T06:02:17.171Z', 'default_branch': 'master', 'tag_list': [], 'ssh_url_to_repo': '[email protected]:datasets_a/covid-face-mask-detection-dataset.git', 'http_url_to_repo': 'https://gitlab.com/datasets_a/covid-face-mask-detection-dataset.git', 'web_url': 'https://gitlab.com/datasets_a/covid-face-mask-detection-dataset', 'readme_url': 'https://gitlab.com/datasets_a/covid-face-mask-detection-dataset/-/blob/master/README.md', 'avatar_url': None, 'forks_count': 0, 'star_count': 0, 'last_activity_at': '2020-11-16T06:02:17.171Z', 'namespace': {'id': 9799560, 'name': 'datasets', 'path': 'datasets_a', 'kind': 'group', 'full_path': 'datasets_a', 'parent_id': None, 'avatar_url': None, 'web_url': 'https://gitlab.com/groups/datasets_a'}, '_links': {'self': 'https://gitlab.com/api/v4/projects/22473676', 'issues': 'https://gitlab.com/api/v4/projects/22473676/issues', 'merge_requests': 'https://gitlab.com/api/v4/projects/22473676/merge_requests', 'repo_branches': 'https://gitlab.com/api/v4/projects/22473676/repository/branches', 'labels': 'https://gitlab.com/api/v4/projects/22473676/labels', 'events': 'https://gitlab.com/api/v4/projects/22473676/events', 'members': 'https://gitlab.com/api/v4/projects/22473676/members'}, 'packages_enabled': True, 'empty_repo': False, 'archived': False, 'visibility': 'public', 'resolve_outdated_diff_discussions': False, 'container_registry_enabled': True, 'container_expiration_policy': {'cadence': '1d', 'enabled': False, 'keep_n': 10, 'older_than': '90d', 'name_regex': '.*', 'name_regex_keep': None, 'next_run_at': '2020-11-17T06:02:17.200Z'}, 'issues_enabled': True, 'merge_requests_enabled': True, 'wiki_enabled': True, 'jobs_enabled': True, 'snippets_enabled': True, 'service_desk_enabled': True, 'service_desk_address': 'incoming+datasets-a-covid-face-mask-detection-dataset-22473676-issue-@incoming.gitlab.com', 'can_create_merge_request_in': False, 'issues_access_level': 'enabled', 'repository_access_level': 'enabled', 'merge_requests_access_level': 'enabled', 'forking_access_level': 'enabled', 'wiki_access_level': 'enabled', 'builds_access_level': 'enabled', 'snippets_access_level': 'enabled', 'pages_access_level': 'enabled', 'operations_access_level': 'enabled', 'analytics_access_level': 'enabled', 'emails_disabled': None, 'shared_runners_enabled': True, 'lfs_enabled': True, 'creator_id': 4094213, 'import_status': 'none', 'open_issues_count': 0, 'ci_default_git_depth': 50, 'ci_forward_deployment_enabled': True, 'public_jobs': True, 'build_timeout': 3600, 'auto_cancel_pending_pipelines': 'enabled', 'build_coverage_regex': None, 'ci_config_path': '', 'shared_with_groups': [], 'only_allow_merge_if_pipeline_succeeds': False, 'allow_merge_on_skipped_pipeline': None, 'request_access_enabled': True, 'only_allow_merge_if_all_discussions_are_resolved': False, 'remove_source_branch_after_merge': True, 'printing_merge_request_link_enabled': True, 'merge_method': 'merge', 'suggestion_commit_message': None, 'auto_devops_enabled': False, 'auto_devops_deploy_strategy': 'continuous', 'autoclose_referenced_issues': True, 'approvals_before_merge': 0, 'mirror': False, 'external_authorization_classification_label': '', 'marked_for_deletion_at': None, 'marked_for_deletion_on': None, 'requirements_enabled': True, 'compliance_frameworks': []}
-----------------------
<class 'gitlab.v4.objects.GroupProject'> => {'id': 21864811, 'description': '', 'name': 'Computer Vision in Python - Face Detection and Image Recognition', 'name_with_namespace': 'datasets / Computer Vision in Python - Face Detection and Image Recognition', 'path': 'computer-vision-in-python-face-detection-and-image-recognition', 'path_with_namespace': 'datasets_a/computer-vision-in-python-face-detection-and-image-recognition', 'created_at': '2020-10-19T04:57:30.429Z', 'default_branch': 'master', 'tag_list': [], 'ssh_url_to_repo': '[email protected]:datasets_a/computer-vision-in-python-face-detection-and-image-recognition.git', 'http_url_to_repo': 'https://gitlab.com/datasets_a/computer-vision-in-python-face-detection-and-image-recognition.git', 'web_url': 'https://gitlab.com/datasets_a/computer-vision-in-python-face-detection-and-image-recognition', 'readme_url': None, 'avatar_url': None, 'forks_count': 0, 'star_count': 0, 'last_activity_at': '2020-10-26T13:15:32.005Z', 'namespace': {'id': 9799560, 'name': 'datasets', 'path': 'datasets_a', 'kind': 'group', 'full_path': 'datasets_a', 'parent_id': None, 'avatar_url': None, 'web_url': 'https://gitlab.com/groups/datasets_a'}, '_links': {'self': 'https://gitlab.com/api/v4/projects/21864811', 'repo_branches': 'https://gitlab.com/api/v4/projects/21864811/repository/branches', 'labels': 'https://gitlab.com/api/v4/projects/21864811/labels', 'events': 'https://gitlab.com/api/v4/projects/21864811/events', 'members': 'https://gitlab.com/api/v4/projects/21864811/members'}, 'packages_enabled': False, 'empty_repo': False, 'archived': False, 'visibility': 'public', 'resolve_outdated_diff_discussions': False, 'container_registry_enabled': False, 'container_expiration_policy': {'cadence': '1d', 'enabled': True, 'keep_n': 10, 'older_than': '90d', 'name_regex': None, 'name_regex_keep': None, 'next_run_at': '2020-10-21T07:31:06.778Z'}, 'issues_enabled': False, 'merge_requests_enabled': None, 'wiki_enabled': False, 'jobs_enabled': None, 'snippets_enabled': False, 'service_desk_enabled': True, 'service_desk_address': 'incoming+datasets-a-computer-vision-in-python-face-detection-and-image-r-21864811-issue-@incoming.gitlab.com', 'can_create_merge_request_in': False, 'issues_access_level': 'disabled', 'repository_access_level': 'enabled', 'merge_requests_access_level': 'private', 'forking_access_level': 'private', 'wiki_access_level': 'disabled', 'builds_access_level': 'private', 'snippets_access_level': 'disabled', 'pages_access_level': 'disabled', 'operations_access_level': 'enabled', 'analytics_access_level': 'enabled', 'emails_disabled': False, 'shared_runners_enabled': True, 'lfs_enabled': True, 'creator_id': 4094213, 'import_status': 'none', 'ci_default_git_depth': 50, 'ci_forward_deployment_enabled': True, 'public_jobs': True, 'build_timeout': 3600, 'auto_cancel_pending_pipelines': 'enabled', 'build_coverage_regex': None, 'ci_config_path': '', 'shared_with_groups': [], 'only_allow_merge_if_pipeline_succeeds': False, 'allow_merge_on_skipped_pipeline': None, 'request_access_enabled': True, 'only_allow_merge_if_all_discussions_are_resolved': False, 'remove_source_branch_after_merge': True, 'printing_merge_request_link_enabled': True, 'merge_method': 'merge', 'suggestion_commit_message': None, 'auto_devops_enabled': False, 'auto_devops_deploy_strategy': 'continuous', 'autoclose_referenced_issues': True, 'approvals_before_merge': 0, 'mirror': False, 'external_authorization_classification_label': '', 'marked_for_deletion_at': None, 'marked_for_deletion_on': None, 'requirements_enabled': True, 'compliance_frameworks': []}


The above output displayed information about three projects in the group. The project we are interested is the first one with project id 22838171

In [10]:
project = gl.projects.get(22838171)


Let's view the items in the project.

In [11]:
items = project.repository_tree()
items
Out[11]:
[{'id': '2485ed68ee2388aab629c070c9b624b08b5bbd2f',
  'name': 'mpg.csv',
  'type': 'blob',
  'path': 'mpg.csv',
  'mode': '100644'}]


The project has only one item and it the mpg.csv file we are looking for. Projects usually have more than one items. We can retrieve file information using its file id.

In [12]:
file_info = project.repository_blob(items[0]['id'])
file_info
Out[12]:
{'size': 17345,
 'encoding': 'base64',
 'content': 'IiIsIm1hbnVmYWN0dXJlciIsIm1vZGVsIiwiZGlzcGwiLCJ5ZWFyIiwiY3lsIiwidHJhbnMiLCJkcnYiLCJjdHkiLCJod3kiLCJmbCIsImNsYXNzIgoiMSIsImF1ZGkiLCJhNCIsMS44LDE5OTksNCwiYXV0byhsNSkiLCJmIiwxOCwyOSwicCIsImNvbXBhY3QiCiIyIiwiYXVkaSIsImE0IiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjEsMjksInAiLCJjb21wYWN0IgoiMyIsImF1ZGkiLCJhNCIsMiwyMDA4LDQsIm1hbnVhbChtNikiLCJmIiwyMCwzMSwicCIsImNvbXBhY3QiCiI0IiwiYXVkaSIsImE0IiwyLDIwMDgsNCwiYXV0byhhdikiLCJmIiwyMSwzMCwicCIsImNvbXBhY3QiCiI1IiwiYXVkaSIsImE0IiwyLjgsMTk5OSw2LCJhdXRvKGw1KSIsImYiLDE2LDI2LCJwIiwiY29tcGFjdCIKIjYiLCJhdWRpIiwiYTQiLDIuOCwxOTk5LDYsIm1hbnVhbChtNSkiLCJmIiwxOCwyNiwicCIsImNvbXBhY3QiCiI3IiwiYXVkaSIsImE0IiwzLjEsMjAwOCw2LCJhdXRvKGF2KSIsImYiLDE4LDI3LCJwIiwiY29tcGFjdCIKIjgiLCJhdWRpIiwiYTQgcXVhdHRybyIsMS44LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE4LDI2LCJwIiwiY29tcGFjdCIKIjkiLCJhdWRpIiwiYTQgcXVhdHRybyIsMS44LDE5OTksNCwiYXV0byhsNSkiLCI0IiwxNiwyNSwicCIsImNvbXBhY3QiCiIxMCIsImF1ZGkiLCJhNCBxdWF0dHJvIiwyLDIwMDgsNCwibWFudWFsKG02KSIsIjQiLDIwLDI4LCJwIiwiY29tcGFjdCIKIjExIiwiYXVkaSIsImE0IHF1YXR0cm8iLDIsMjAwOCw0LCJhdXRvKHM2KSIsIjQiLDE5LDI3LCJwIiwiY29tcGFjdCIKIjEyIiwiYXVkaSIsImE0IHF1YXR0cm8iLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTUsMjUsInAiLCJjb21wYWN0IgoiMTMiLCJhdWRpIiwiYTQgcXVhdHRybyIsMi44LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE3LDI1LCJwIiwiY29tcGFjdCIKIjE0IiwiYXVkaSIsImE0IHF1YXR0cm8iLDMuMSwyMDA4LDYsImF1dG8oczYpIiwiNCIsMTcsMjUsInAiLCJjb21wYWN0IgoiMTUiLCJhdWRpIiwiYTQgcXVhdHRybyIsMy4xLDIwMDgsNiwibWFudWFsKG02KSIsIjQiLDE1LDI1LCJwIiwiY29tcGFjdCIKIjE2IiwiYXVkaSIsImE2IHF1YXR0cm8iLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTUsMjQsInAiLCJtaWRzaXplIgoiMTciLCJhdWRpIiwiYTYgcXVhdHRybyIsMy4xLDIwMDgsNiwiYXV0byhzNikiLCI0IiwxNywyNSwicCIsIm1pZHNpemUiCiIxOCIsImF1ZGkiLCJhNiBxdWF0dHJvIiw0LjIsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDE2LDIzLCJwIiwibWlkc2l6ZSIKIjE5IiwiY2hldnJvbGV0IiwiYzE1MDAgc3VidXJiYW4gMndkIiw1LjMsMjAwOCw4LCJhdXRvKGw0KSIsInIiLDE0LDIwLCJyIiwic3V2IgoiMjAiLCJjaGV2cm9sZXQiLCJjMTUwMCBzdWJ1cmJhbiAyd2QiLDUuMywyMDA4LDgsImF1dG8obDQpIiwiciIsMTEsMTUsImUiLCJzdXYiCiIyMSIsImNoZXZyb2xldCIsImMxNTAwIHN1YnVyYmFuIDJ3ZCIsNS4zLDIwMDgsOCwiYXV0byhsNCkiLCJyIiwxNCwyMCwiciIsInN1diIKIjIyIiwiY2hldnJvbGV0IiwiYzE1MDAgc3VidXJiYW4gMndkIiw1LjcsMTk5OSw4LCJhdXRvKGw0KSIsInIiLDEzLDE3LCJyIiwic3V2IgoiMjMiLCJjaGV2cm9sZXQiLCJjMTUwMCBzdWJ1cmJhbiAyd2QiLDYsMjAwOCw4LCJhdXRvKGw0KSIsInIiLDEyLDE3LCJyIiwic3V2IgoiMjQiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNS43LDE5OTksOCwibWFudWFsKG02KSIsInIiLDE2LDI2LCJwIiwiMnNlYXRlciIKIjI1IiwiY2hldnJvbGV0IiwiY29ydmV0dGUiLDUuNywxOTk5LDgsImF1dG8obDQpIiwiciIsMTUsMjMsInAiLCIyc2VhdGVyIgoiMjYiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNi4yLDIwMDgsOCwibWFudWFsKG02KSIsInIiLDE2LDI2LCJwIiwiMnNlYXRlciIKIjI3IiwiY2hldnJvbGV0IiwiY29ydmV0dGUiLDYuMiwyMDA4LDgsImF1dG8oczYpIiwiciIsMTUsMjUsInAiLCIyc2VhdGVyIgoiMjgiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNywyMDA4LDgsIm1hbnVhbChtNikiLCJyIiwxNSwyNCwicCIsIjJzZWF0ZXIiCiIyOSIsImNoZXZyb2xldCIsImsxNTAwIHRhaG9lIDR3ZCIsNS4zLDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxNCwxOSwiciIsInN1diIKIjMwIiwiY2hldnJvbGV0IiwiazE1MDAgdGFob2UgNHdkIiw1LjMsMjAwOCw4LCJhdXRvKGw0KSIsIjQiLDExLDE0LCJlIiwic3V2IgoiMzEiLCJjaGV2cm9sZXQiLCJrMTUwMCB0YWhvZSA0d2QiLDUuNywxOTk5LDgsImF1dG8obDQpIiwiNCIsMTEsMTUsInIiLCJzdXYiCiIzMiIsImNoZXZyb2xldCIsImsxNTAwIHRhaG9lIDR3ZCIsNi41LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxNCwxNywiZCIsInN1diIKIjMzIiwiY2hldnJvbGV0IiwibWFsaWJ1IiwyLjQsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI3LCJyIiwibWlkc2l6ZSIKIjM0IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwyLjQsMjAwOCw0LCJhdXRvKGw0KSIsImYiLDIyLDMwLCJyIiwibWlkc2l6ZSIKIjM1IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjEsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjM2IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjUsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE4LDI5LCJyIiwibWlkc2l6ZSIKIjM3IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjYsMjAwOCw2LCJhdXRvKHM2KSIsImYiLDE3LDI2LCJyIiwibWlkc2l6ZSIKIjM4IiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMi40LDE5OTksNCwiYXV0byhsMykiLCJmIiwxOCwyNCwiciIsIm1pbml2YW4iCiIzOSIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwibWluaXZhbiIKIjQwIiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy4zLDE5OTksNiwiYXV0byhsNCkiLCJmIiwxNiwyMiwiciIsIm1pbml2YW4iCiI0MSIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuMywxOTk5LDYsImF1dG8obDQpIiwiZiIsMTYsMjIsInIiLCJtaW5pdmFuIgoiNDIiLCJkb2RnZSIsImNhcmF2YW4gMndkIiwzLjMsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwibWluaXZhbiIKIjQzIiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy4zLDIwMDgsNiwiYXV0byhsNCkiLCJmIiwxNywyNCwiciIsIm1pbml2YW4iCiI0NCIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuMywyMDA4LDYsImF1dG8obDQpIiwiZiIsMTEsMTcsImUiLCJtaW5pdmFuIgoiNDUiLCJkb2RnZSIsImNhcmF2YW4gMndkIiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE1LDIyLCJyIiwibWluaXZhbiIKIjQ2IiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy44LDE5OTksNiwiYXV0byhsNCkiLCJmIiwxNSwyMSwiciIsIm1pbml2YW4iCiI0NyIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuOCwyMDA4LDYsImF1dG8obDYpIiwiZiIsMTYsMjMsInIiLCJtaW5pdmFuIgoiNDgiLCJkb2RnZSIsImNhcmF2YW4gMndkIiw0LDIwMDgsNiwiYXV0byhsNikiLCJmIiwxNiwyMywiciIsIm1pbml2YW4iCiI0OSIsImRvZGdlIiwiZGFrb3RhIHBpY2t1cCA0d2QiLDMuNywyMDA4LDYsIm1hbnVhbChtNikiLCI0IiwxNSwxOSwiciIsInBpY2t1cCIKIjUwIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy43LDIwMDgsNiwiYXV0byhsNCkiLCI0IiwxNCwxOCwiciIsInBpY2t1cCIKIjUxIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy45LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjUyIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy45LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE0LDE3LCJyIiwicGlja3VwIgoiNTMiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwicGlja3VwIgoiNTQiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwicGlja3VwIgoiNTUiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJwaWNrdXAiCiI1NiIsImRvZGdlIiwiZGFrb3RhIHBpY2t1cCA0d2QiLDUuMiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMSwxNywiciIsInBpY2t1cCIKIjU3IiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsNS4yLDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInBpY2t1cCIKIjU4IiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsMy45LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInN1diIKIjU5IiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxNywiciIsInN1diIKIjYwIiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0Iiw5LDEyLCJlIiwic3V2IgoiNjEiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwic3V2IgoiNjIiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjIsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE2LCJyIiwic3V2IgoiNjMiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE4LCJyIiwic3V2IgoiNjQiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjksMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJyIiwic3V2IgoiNjUiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDQuNywyMDA4LDgsIm1hbnVhbChtNikiLCI0IiwxMiwxNiwiciIsInBpY2t1cCIKIjY2IiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJwaWNrdXAiCiI2NyIsImRvZGdlIiwicmFtIDE1MDAgcGlja3VwIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjY4IiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwicGlja3VwIgoiNjkiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDQuNywyMDA4LDgsIm1hbnVhbChtNikiLCI0IiwxMiwxNiwiciIsInBpY2t1cCIKIjcwIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJtYW51YWwobTYpIiwiNCIsOSwxMiwiZSIsInBpY2t1cCIKIjcxIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw1LjIsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJyIiwicGlja3VwIgoiNzIiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDUuMiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMSwxNiwiciIsInBpY2t1cCIKIjczIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw1LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwicGlja3VwIgoiNzQiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDUuOSwxOTk5LDgsImF1dG8obDQpIiwiNCIsMTEsMTUsInIiLCJwaWNrdXAiCiI3NSIsImZvcmQiLCJleHBlZGl0aW9uIDJ3ZCIsNC42LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxMSwxNywiciIsInN1diIKIjc2IiwiZm9yZCIsImV4cGVkaXRpb24gMndkIiw1LjQsMTk5OSw4LCJhdXRvKGw0KSIsInIiLDExLDE3LCJyIiwic3V2IgoiNzciLCJmb3JkIiwiZXhwZWRpdGlvbiAyd2QiLDUuNCwyMDA4LDgsImF1dG8obDYpIiwiciIsMTIsMTgsInIiLCJzdXYiCiI3OCIsImZvcmQiLCJleHBsb3JlciA0d2QiLDQsMTk5OSw2LCJhdXRvKGw1KSIsIjQiLDE0LDE3LCJyIiwic3V2IgoiNzkiLCJmb3JkIiwiZXhwbG9yZXIgNHdkIiw0LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE1LDE5LCJyIiwic3V2IgoiODAiLCJmb3JkIiwiZXhwbG9yZXIgNHdkIiw0LDE5OTksNiwiYXV0byhsNSkiLCI0IiwxNCwxNywiciIsInN1diIKIjgxIiwiZm9yZCIsImV4cGxvcmVyIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTMsMTksInIiLCJzdXYiCiI4MiIsImZvcmQiLCJleHBsb3JlciA0d2QiLDQuNiwyMDA4LDgsImF1dG8obDYpIiwiNCIsMTMsMTksInIiLCJzdXYiCiI4MyIsImZvcmQiLCJleHBsb3JlciA0d2QiLDUsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDEzLDE3LCJyIiwic3V2IgoiODQiLCJmb3JkIiwiZjE1MCBwaWNrdXAgNHdkIiw0LjIsMTk5OSw2LCJhdXRvKGw0KSIsIjQiLDE0LDE3LCJyIiwicGlja3VwIgoiODUiLCJmb3JkIiwiZjE1MCBwaWNrdXAgNHdkIiw0LjIsMTk5OSw2LCJtYW51YWwobTUpIiwiNCIsMTQsMTcsInIiLCJwaWNrdXAiCiI4NiIsImZvcmQiLCJmMTUwIHBpY2t1cCA0d2QiLDQuNiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMywxNiwiciIsInBpY2t1cCIKIjg3IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNC42LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMywxNiwiciIsInBpY2t1cCIKIjg4IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNC42LDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjg5IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNS40LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInBpY2t1cCIKIjkwIiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNS40LDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjkxIiwiZm9yZCIsIm11c3RhbmciLDMuOCwxOTk5LDYsIm1hbnVhbChtNSkiLCJyIiwxOCwyNiwiciIsInN1YmNvbXBhY3QiCiI5MiIsImZvcmQiLCJtdXN0YW5nIiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsInIiLDE4LDI1LCJyIiwic3ViY29tcGFjdCIKIjkzIiwiZm9yZCIsIm11c3RhbmciLDQsMjAwOCw2LCJtYW51YWwobTUpIiwiciIsMTcsMjYsInIiLCJzdWJjb21wYWN0IgoiOTQiLCJmb3JkIiwibXVzdGFuZyIsNCwyMDA4LDYsImF1dG8obDUpIiwiciIsMTYsMjQsInIiLCJzdWJjb21wYWN0IgoiOTUiLCJmb3JkIiwibXVzdGFuZyIsNC42LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxNSwyMSwiciIsInN1YmNvbXBhY3QiCiI5NiIsImZvcmQiLCJtdXN0YW5nIiw0LjYsMTk5OSw4LCJtYW51YWwobTUpIiwiciIsMTUsMjIsInIiLCJzdWJjb21wYWN0IgoiOTciLCJmb3JkIiwibXVzdGFuZyIsNC42LDIwMDgsOCwibWFudWFsKG01KSIsInIiLDE1LDIzLCJyIiwic3ViY29tcGFjdCIKIjk4IiwiZm9yZCIsIm11c3RhbmciLDQuNiwyMDA4LDgsImF1dG8obDUpIiwiciIsMTUsMjIsInIiLCJzdWJjb21wYWN0IgoiOTkiLCJmb3JkIiwibXVzdGFuZyIsNS40LDIwMDgsOCwibWFudWFsKG02KSIsInIiLDE0LDIwLCJwIiwic3ViY29tcGFjdCIKIjEwMCIsImhvbmRhIiwiY2l2aWMiLDEuNiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyOCwzMywiciIsInN1YmNvbXBhY3QiCiIxMDEiLCJob25kYSIsImNpdmljIiwxLjYsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDI0LDMyLCJyIiwic3ViY29tcGFjdCIKIjEwMiIsImhvbmRhIiwiY2l2aWMiLDEuNiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyNSwzMiwiciIsInN1YmNvbXBhY3QiCiIxMDMiLCJob25kYSIsImNpdmljIiwxLjYsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjMsMjksInAiLCJzdWJjb21wYWN0IgoiMTA0IiwiaG9uZGEiLCJjaXZpYyIsMS42LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyNCwzMiwiciIsInN1YmNvbXBhY3QiCiIxMDUiLCJob25kYSIsImNpdmljIiwxLjgsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjYsMzQsInIiLCJzdWJjb21wYWN0IgoiMTA2IiwiaG9uZGEiLCJjaXZpYyIsMS44LDIwMDgsNCwiYXV0byhsNSkiLCJmIiwyNSwzNiwiciIsInN1YmNvbXBhY3QiCiIxMDciLCJob25kYSIsImNpdmljIiwxLjgsMjAwOCw0LCJhdXRvKGw1KSIsImYiLDI0LDM2LCJjIiwic3ViY29tcGFjdCIKIjEwOCIsImhvbmRhIiwiY2l2aWMiLDIsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjEsMjksInAiLCJzdWJjb21wYWN0IgoiMTA5IiwiaHl1bmRhaSIsInNvbmF0YSIsMi40LDE5OTksNCwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsIm1pZHNpemUiCiIxMTAiLCJoeXVuZGFpIiwic29uYXRhIiwyLjQsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMTgsMjcsInIiLCJtaWRzaXplIgoiMTExIiwiaHl1bmRhaSIsInNvbmF0YSIsMi40LDIwMDgsNCwiYXV0byhsNCkiLCJmIiwyMSwzMCwiciIsIm1pZHNpemUiCiIxMTIiLCJoeXVuZGFpIiwic29uYXRhIiwyLjQsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTEzIiwiaHl1bmRhaSIsInNvbmF0YSIsMi41LDE5OTksNiwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsIm1pZHNpemUiCiIxMTQiLCJoeXVuZGFpIiwic29uYXRhIiwyLjUsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTgsMjYsInIiLCJtaWRzaXplIgoiMTE1IiwiaHl1bmRhaSIsInNvbmF0YSIsMy4zLDIwMDgsNiwiYXV0byhsNSkiLCJmIiwxOSwyOCwiciIsIm1pZHNpemUiCiIxMTYiLCJoeXVuZGFpIiwidGlidXJvbiIsMiwxOTk5LDQsImF1dG8obDQpIiwiZiIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMTE3IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMTksMjksInIiLCJzdWJjb21wYWN0IgoiMTE4IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjAsMjgsInIiLCJzdWJjb21wYWN0IgoiMTE5IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMjAwOCw0LCJhdXRvKGw0KSIsImYiLDIwLDI3LCJyIiwic3ViY29tcGFjdCIKIjEyMCIsImh5dW5kYWkiLCJ0aWJ1cm9uIiwyLjcsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwic3ViY29tcGFjdCIKIjEyMSIsImh5dW5kYWkiLCJ0aWJ1cm9uIiwyLjcsMjAwOCw2LCJtYW51YWwobTYpIiwiZiIsMTYsMjQsInIiLCJzdWJjb21wYWN0IgoiMTIyIiwiaHl1bmRhaSIsInRpYnVyb24iLDIuNywyMDA4LDYsIm1hbnVhbChtNSkiLCJmIiwxNywyNCwiciIsInN1YmNvbXBhY3QiCiIxMjMiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiwzLDIwMDgsNiwiYXV0byhsNSkiLCI0IiwxNywyMiwiZCIsInN1diIKIjEyNCIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDMuNywyMDA4LDYsImF1dG8obDUpIiwiNCIsMTUsMTksInIiLCJzdXYiCiIxMjUiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxNSwyMCwiciIsInN1diIKIjEyNiIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDQuNywxOTk5LDgsImF1dG8obDQpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxMjciLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJzdXYiCiIxMjgiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwic3V2IgoiMTI5IiwiamVlcCIsImdyYW5kIGNoZXJva2VlIDR3ZCIsNS43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxOCwiciIsInN1diIKIjEzMCIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDYuMSwyMDA4LDgsImF1dG8obDUpIiwiNCIsMTEsMTQsInAiLCJzdXYiCiIxMzEiLCJsYW5kIHJvdmVyIiwicmFuZ2Ugcm92ZXIiLDQsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJwIiwic3V2IgoiMTMyIiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjIsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDEyLDE4LCJyIiwic3V2IgoiMTMzIiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjQsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDEyLDE4LCJyIiwic3V2IgoiMTM0IiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjYsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJwIiwic3V2IgoiMTM1IiwibGluY29sbiIsIm5hdmlnYXRvciAyd2QiLDUuNCwxOTk5LDgsImF1dG8obDQpIiwiciIsMTEsMTcsInIiLCJzdXYiCiIxMzYiLCJsaW5jb2xuIiwibmF2aWdhdG9yIDJ3ZCIsNS40LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxMSwxNiwicCIsInN1diIKIjEzNyIsImxpbmNvbG4iLCJuYXZpZ2F0b3IgMndkIiw1LjQsMjAwOCw4LCJhdXRvKGw2KSIsInIiLDEyLDE4LCJyIiwic3V2IgoiMTM4IiwibWVyY3VyeSIsIm1vdW50YWluZWVyIDR3ZCIsNCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxMzkiLCJtZXJjdXJ5IiwibW91bnRhaW5lZXIgNHdkIiw0LDIwMDgsNiwiYXV0byhsNSkiLCI0IiwxMywxOSwiciIsInN1diIKIjE0MCIsIm1lcmN1cnkiLCJtb3VudGFpbmVlciA0d2QiLDQuNiwyMDA4LDgsImF1dG8obDYpIiwiNCIsMTMsMTksInIiLCJzdXYiCiIxNDEiLCJtZXJjdXJ5IiwibW91bnRhaW5lZXIgNHdkIiw1LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInN1diIKIjE0MiIsIm5pc3NhbiIsImFsdGltYSIsMi40LDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwiY29tcGFjdCIKIjE0MyIsIm5pc3NhbiIsImFsdGltYSIsMi40LDE5OTksNCwiYXV0byhsNCkiLCJmIiwxOSwyNywiciIsImNvbXBhY3QiCiIxNDQiLCJuaXNzYW4iLCJhbHRpbWEiLDIuNSwyMDA4LDQsImF1dG8oYXYpIiwiZiIsMjMsMzEsInIiLCJtaWRzaXplIgoiMTQ1Iiwibmlzc2FuIiwiYWx0aW1hIiwyLjUsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjMsMzIsInIiLCJtaWRzaXplIgoiMTQ2Iiwibmlzc2FuIiwiYWx0aW1hIiwzLjUsMjAwOCw2LCJtYW51YWwobTYpIiwiZiIsMTksMjcsInAiLCJtaWRzaXplIgoiMTQ3Iiwibmlzc2FuIiwiYWx0aW1hIiwzLjUsMjAwOCw2LCJhdXRvKGF2KSIsImYiLDE5LDI2LCJwIiwibWlkc2l6ZSIKIjE0OCIsIm5pc3NhbiIsIm1heGltYSIsMywxOTk5LDYsImF1dG8obDQpIiwiZiIsMTgsMjYsInIiLCJtaWRzaXplIgoiMTQ5Iiwibmlzc2FuIiwibWF4aW1hIiwzLDE5OTksNiwibWFudWFsKG01KSIsImYiLDE5LDI1LCJyIiwibWlkc2l6ZSIKIjE1MCIsIm5pc3NhbiIsIm1heGltYSIsMy41LDIwMDgsNiwiYXV0byhhdikiLCJmIiwxOSwyNSwicCIsIm1pZHNpemUiCiIxNTEiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsMy4zLDE5OTksNiwiYXV0byhsNCkiLCI0IiwxNCwxNywiciIsInN1diIKIjE1MiIsIm5pc3NhbiIsInBhdGhmaW5kZXIgNHdkIiwzLjMsMTk5OSw2LCJtYW51YWwobTUpIiwiNCIsMTUsMTcsInIiLCJzdXYiCiIxNTMiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTQsMjAsInAiLCJzdXYiCiIxNTQiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsNS42LDIwMDgsOCwiYXV0byhzNSkiLCI0IiwxMiwxOCwicCIsInN1diIKIjE1NSIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjEsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE1NiIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE2LDI2LCJwIiwibWlkc2l6ZSIKIjE1NyIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE3LDI3LCJyIiwibWlkc2l6ZSIKIjE1OCIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE4LDI4LCJyIiwibWlkc2l6ZSIKIjE1OSIsInBvbnRpYWMiLCJncmFuZCBwcml4Iiw1LjMsMjAwOCw4LCJhdXRvKHM0KSIsImYiLDE2LDI1LCJwIiwibWlkc2l6ZSIKIjE2MCIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE4LDI1LCJyIiwic3V2IgoiMTYxIiwic3ViYXJ1IiwiZm9yZXN0ZXIgYXdkIiwyLjUsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDE4LDI0LCJyIiwic3V2IgoiMTYyIiwic3ViYXJ1IiwiZm9yZXN0ZXIgYXdkIiwyLjUsMjAwOCw0LCJtYW51YWwobTUpIiwiNCIsMjAsMjcsInIiLCJzdXYiCiIxNjMiLCJzdWJhcnUiLCJmb3Jlc3RlciBhd2QiLDIuNSwyMDA4LDQsIm1hbnVhbChtNSkiLCI0IiwxOSwyNSwicCIsInN1diIKIjE2NCIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhsNCkiLCI0IiwyMCwyNiwiciIsInN1diIKIjE2NSIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhsNCkiLCI0IiwxOCwyMywicCIsInN1diIKIjE2NiIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjIsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDIxLDI2LCJyIiwic3ViY29tcGFjdCIKIjE2NyIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjIsMTk5OSw0LCJtYW51YWwobTUpIiwiNCIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMTY4Iiwic3ViYXJ1IiwiaW1wcmV6YSBhd2QiLDIuNSwxOTk5LDQsIm1hbnVhbChtNSkiLCI0IiwxOSwyNiwiciIsInN1YmNvbXBhY3QiCiIxNjkiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDE5OTksNCwiYXV0byhsNCkiLCI0IiwxOSwyNiwiciIsInN1YmNvbXBhY3QiCiIxNzAiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhzNCkiLCI0IiwyMCwyNSwicCIsImNvbXBhY3QiCiIxNzEiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhzNCkiLCI0IiwyMCwyNywiciIsImNvbXBhY3QiCiIxNzIiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwibWFudWFsKG01KSIsIjQiLDE5LDI1LCJwIiwiY29tcGFjdCIKIjE3MyIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjUsMjAwOCw0LCJtYW51YWwobTUpIiwiNCIsMjAsMjcsInIiLCJjb21wYWN0IgoiMTc0IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDIuNywxOTk5LDQsIm1hbnVhbChtNSkiLCI0IiwxNSwyMCwiciIsInN1diIKIjE3NSIsInRveW90YSIsIjRydW5uZXIgNHdkIiwyLjcsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDE2LDIwLCJyIiwic3V2IgoiMTc2IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDMuNCwxOTk5LDYsImF1dG8obDQpIiwiNCIsMTUsMTksInIiLCJzdXYiCiIxNzciLCJ0b3lvdGEiLCI0cnVubmVyIDR3ZCIsMy40LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE1LDE3LCJyIiwic3V2IgoiMTc4IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDQsMjAwOCw2LCJhdXRvKGw1KSIsIjQiLDE2LDIwLCJyIiwic3V2IgoiMTc5IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDQuNywyMDA4LDgsImF1dG8obDUpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxODAiLCJ0b3lvdGEiLCJjYW1yeSIsMi4yLDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwibWlkc2l6ZSIKIjE4MSIsInRveW90YSIsImNhbXJ5IiwyLjIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDIxLDI3LCJyIiwibWlkc2l6ZSIKIjE4MiIsInRveW90YSIsImNhbXJ5IiwyLjQsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTgzIiwidG95b3RhIiwiY2FtcnkiLDIuNCwyMDA4LDQsImF1dG8obDUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTg0IiwidG95b3RhIiwiY2FtcnkiLDMsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE4NSIsInRveW90YSIsImNhbXJ5IiwzLDE5OTksNiwibWFudWFsKG01KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE4NiIsInRveW90YSIsImNhbXJ5IiwzLjUsMjAwOCw2LCJhdXRvKHM2KSIsImYiLDE5LDI4LCJyIiwibWlkc2l6ZSIKIjE4NyIsInRveW90YSIsImNhbXJ5IHNvbGFyYSIsMi4yLDE5OTksNCwiYXV0byhsNCkiLCJmIiwyMSwyNywiciIsImNvbXBhY3QiCiIxODgiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIxODkiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuNCwyMDA4LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwzMSwiciIsImNvbXBhY3QiCiIxOTAiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuNCwyMDA4LDQsImF1dG8oczUpIiwiZiIsMjIsMzEsInIiLCJjb21wYWN0IgoiMTkxIiwidG95b3RhIiwiY2Ftcnkgc29sYXJhIiwzLDE5OTksNiwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsImNvbXBhY3QiCiIxOTIiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDMsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTgsMjYsInIiLCJjb21wYWN0IgoiMTkzIiwidG95b3RhIiwiY2Ftcnkgc29sYXJhIiwzLjMsMjAwOCw2LCJhdXRvKHM1KSIsImYiLDE4LDI3LCJyIiwiY29tcGFjdCIKIjE5NCIsInRveW90YSIsImNvcm9sbGEiLDEuOCwxOTk5LDQsImF1dG8obDMpIiwiZiIsMjQsMzAsInIiLCJjb21wYWN0IgoiMTk1IiwidG95b3RhIiwiY29yb2xsYSIsMS44LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyNCwzMywiciIsImNvbXBhY3QiCiIxOTYiLCJ0b3lvdGEiLCJjb3JvbGxhIiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjYsMzUsInIiLCJjb21wYWN0IgoiMTk3IiwidG95b3RhIiwiY29yb2xsYSIsMS44LDIwMDgsNCwibWFudWFsKG01KSIsImYiLDI4LDM3LCJyIiwiY29tcGFjdCIKIjE5OCIsInRveW90YSIsImNvcm9sbGEiLDEuOCwyMDA4LDQsImF1dG8obDQpIiwiZiIsMjYsMzUsInIiLCJjb21wYWN0IgoiMTk5IiwidG95b3RhIiwibGFuZCBjcnVpc2VyIHdhZ29uIDR3ZCIsNC43LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInN1diIKIjIwMCIsInRveW90YSIsImxhbmQgY3J1aXNlciB3YWdvbiA0d2QiLDUuNywyMDA4LDgsImF1dG8oczYpIiwiNCIsMTMsMTgsInIiLCJzdXYiCiIyMDEiLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsMi43LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE1LDIwLCJyIiwicGlja3VwIgoiMjAyIiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDIuNywxOTk5LDQsImF1dG8obDQpIiwiNCIsMTYsMjAsInIiLCJwaWNrdXAiCiIyMDMiLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsMi43LDIwMDgsNCwibWFudWFsKG01KSIsIjQiLDE3LDIyLCJyIiwicGlja3VwIgoiMjA0IiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDMuNCwxOTk5LDYsIm1hbnVhbChtNSkiLCI0IiwxNSwxNywiciIsInBpY2t1cCIKIjIwNSIsInRveW90YSIsInRveW90YSB0YWNvbWEgNHdkIiwzLjQsMTk5OSw2LCJhdXRvKGw0KSIsIjQiLDE1LDE5LCJyIiwicGlja3VwIgoiMjA2IiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDQsMjAwOCw2LCJtYW51YWwobTYpIiwiNCIsMTUsMTgsInIiLCJwaWNrdXAiCiIyMDciLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTYsMjAsInIiLCJwaWNrdXAiCiIyMDgiLCJ2b2xrc3dhZ2VuIiwiZ3RpIiwyLDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwiY29tcGFjdCIKIjIwOSIsInZvbGtzd2FnZW4iLCJndGkiLDIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI2LCJyIiwiY29tcGFjdCIKIjIxMCIsInZvbGtzd2FnZW4iLCJndGkiLDIsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjEsMjksInAiLCJjb21wYWN0IgoiMjExIiwidm9sa3N3YWdlbiIsImd0aSIsMiwyMDA4LDQsImF1dG8oczYpIiwiZiIsMjIsMjksInAiLCJjb21wYWN0IgoiMjEyIiwidm9sa3N3YWdlbiIsImd0aSIsMi44LDE5OTksNiwibWFudWFsKG01KSIsImYiLDE3LDI0LCJyIiwiY29tcGFjdCIKIjIxMyIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMS45LDE5OTksNCwibWFudWFsKG01KSIsImYiLDMzLDQ0LCJkIiwiY29tcGFjdCIKIjIxNCIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMTUiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI2LCJyIiwiY29tcGFjdCIKIjIxNiIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMiwyMDA4LDQsImF1dG8oczYpIiwiZiIsMjIsMjksInAiLCJjb21wYWN0IgoiMjE3Iiwidm9sa3N3YWdlbiIsImpldHRhIiwyLDIwMDgsNCwibWFudWFsKG02KSIsImYiLDIxLDI5LCJwIiwiY29tcGFjdCIKIjIxOCIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMi41LDIwMDgsNSwiYXV0byhzNikiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMTkiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIuNSwyMDA4LDUsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMjAiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIuOCwxOTk5LDYsImF1dG8obDQpIiwiZiIsMTYsMjMsInIiLCJjb21wYWN0IgoiMjIxIiwidm9sa3N3YWdlbiIsImpldHRhIiwyLjgsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTcsMjQsInIiLCJjb21wYWN0IgoiMjIyIiwidm9sa3N3YWdlbiIsIm5ldyBiZWV0bGUiLDEuOSwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwzNSw0NCwiZCIsInN1YmNvbXBhY3QiCiIyMjMiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMS45LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyOSw0MSwiZCIsInN1YmNvbXBhY3QiCiIyMjQiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsInN1YmNvbXBhY3QiCiIyMjUiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMiwxOTk5LDQsImF1dG8obDQpIiwiZiIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMjI2Iiwidm9sa3N3YWdlbiIsIm5ldyBiZWV0bGUiLDIuNSwyMDA4LDUsIm1hbnVhbChtNSkiLCJmIiwyMCwyOCwiciIsInN1YmNvbXBhY3QiCiIyMjciLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMi41LDIwMDgsNSwiYXV0byhzNikiLCJmIiwyMCwyOSwiciIsInN1YmNvbXBhY3QiCiIyMjgiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjEsMjksInAiLCJtaWRzaXplIgoiMjI5Iiwidm9sa3N3YWdlbiIsInBhc3NhdCIsMS44LDE5OTksNCwiYXV0byhsNSkiLCJmIiwxOCwyOSwicCIsIm1pZHNpemUiCiIyMzAiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwyLDIwMDgsNCwiYXV0byhzNikiLCJmIiwxOSwyOCwicCIsIm1pZHNpemUiCiIyMzEiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwyLDIwMDgsNCwibWFudWFsKG02KSIsImYiLDIxLDI5LCJwIiwibWlkc2l6ZSIKIjIzMiIsInZvbGtzd2FnZW4iLCJwYXNzYXQiLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiZiIsMTYsMjYsInAiLCJtaWRzaXplIgoiMjMzIiwidm9sa3N3YWdlbiIsInBhc3NhdCIsMi44LDE5OTksNiwibWFudWFsKG01KSIsImYiLDE4LDI2LCJwIiwibWlkc2l6ZSIKIjIzNCIsInZvbGtzd2FnZW4iLCJwYXNzYXQiLDMuNiwyMDA4LDYsImF1dG8oczYpIiwiZiIsMTcsMjYsInAiLCJtaWRzaXplIgo=',
 'sha': '2485ed68ee2388aab629c070c9b624b08b5bbd2f'}


We notice that the file is encoded and is of no use to us as it is unless we decode it. The encoding used in GitLab by default is base64 as also mentioned in the file information above. base64 is already a built-in package in Python.

In [13]:
import base64
# Decoding using base64
content = base64.b64decode(file_info['content'])
content
Out[13]:
b'"","manufacturer","model","displ","year","cyl","trans","drv","cty","hwy","fl","class"\n"1","audi","a4",1.8,1999,4,"auto(l5)","f",18,29,"p","compact"\n"2","audi","a4",1.8,1999,4,"manual(m5)","f",21,29,"p","compact"\n"3","audi","a4",2,2008,4,"manual(m6)","f",20,31,"p","compact"\n"4","audi","a4",2,2008,4,"auto(av)","f",21,30,"p","compact"\n"5","audi","a4",2.8,1999,6,"auto(l5)","f",16,26,"p","compact"\n"6","audi","a4",2.8,1999,6,"manual(m5)","f",18,26,"p","compact"\n"7","audi","a4",3.1,2008,6,"auto(av)","f",18,27,"p","compact"\n"8","audi","a4 quattro",1.8,1999,4,"manual(m5)","4",18,26,"p","compact"\n"9","audi","a4 quattro",1.8,1999,4,"auto(l5)","4",16,25,"p","compact"\n"10","audi","a4 quattro",2,2008,4,"manual(m6)","4",20,28,"p","compact"\n"11","audi","a4 quattro",2,2008,4,"auto(s6)","4",19,27,"p","compact"\n"12","audi","a4 quattro",2.8,1999,6,"auto(l5)","4",15,25,"p","compact"\n"13","audi","a4 quattro",2.8,1999,6,"manual(m5)","4",17,25,"p","compact"\n"14","audi","a4 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","compact"\n"15","audi","a4 quattro",3.1,2008,6,"manual(m6)","4",15,25,"p","compact"\n"16","audi","a6 quattro",2.8,1999,6,"auto(l5)","4",15,24,"p","midsize"\n"17","audi","a6 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","midsize"\n"18","audi","a6 quattro",4.2,2008,8,"auto(s6)","4",16,23,"p","midsize"\n"19","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"20","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",11,15,"e","suv"\n"21","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"22","chevrolet","c1500 suburban 2wd",5.7,1999,8,"auto(l4)","r",13,17,"r","suv"\n"23","chevrolet","c1500 suburban 2wd",6,2008,8,"auto(l4)","r",12,17,"r","suv"\n"24","chevrolet","corvette",5.7,1999,8,"manual(m6)","r",16,26,"p","2seater"\n"25","chevrolet","corvette",5.7,1999,8,"auto(l4)","r",15,23,"p","2seater"\n"26","chevrolet","corvette",6.2,2008,8,"manual(m6)","r",16,26,"p","2seater"\n"27","chevrolet","corvette",6.2,2008,8,"auto(s6)","r",15,25,"p","2seater"\n"28","chevrolet","corvette",7,2008,8,"manual(m6)","r",15,24,"p","2seater"\n"29","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",14,19,"r","suv"\n"30","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",11,14,"e","suv"\n"31","chevrolet","k1500 tahoe 4wd",5.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"32","chevrolet","k1500 tahoe 4wd",6.5,1999,8,"auto(l4)","4",14,17,"d","suv"\n"33","chevrolet","malibu",2.4,1999,4,"auto(l4)","f",19,27,"r","midsize"\n"34","chevrolet","malibu",2.4,2008,4,"auto(l4)","f",22,30,"r","midsize"\n"35","chevrolet","malibu",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"36","chevrolet","malibu",3.5,2008,6,"auto(l4)","f",18,29,"r","midsize"\n"37","chevrolet","malibu",3.6,2008,6,"auto(s6)","f",17,26,"r","midsize"\n"38","dodge","caravan 2wd",2.4,1999,4,"auto(l3)","f",18,24,"r","minivan"\n"39","dodge","caravan 2wd",3,1999,6,"auto(l4)","f",17,24,"r","minivan"\n"40","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"41","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"42","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"43","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"44","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",11,17,"e","minivan"\n"45","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,22,"r","minivan"\n"46","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,21,"r","minivan"\n"47","dodge","caravan 2wd",3.8,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"48","dodge","caravan 2wd",4,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"49","dodge","dakota pickup 4wd",3.7,2008,6,"manual(m6)","4",15,19,"r","pickup"\n"50","dodge","dakota pickup 4wd",3.7,2008,6,"auto(l4)","4",14,18,"r","pickup"\n"51","dodge","dakota pickup 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","pickup"\n"52","dodge","dakota pickup 4wd",3.9,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"53","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"54","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"55","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"56","dodge","dakota pickup 4wd",5.2,1999,8,"manual(m5)","4",11,17,"r","pickup"\n"57","dodge","dakota pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"58","dodge","durango 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","suv"\n"59","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"60","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"61","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"62","dodge","durango 4wd",5.2,1999,8,"auto(l4)","4",11,16,"r","suv"\n"63","dodge","durango 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"64","dodge","durango 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","suv"\n"65","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"66","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"67","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"68","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"69","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"70","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",9,12,"e","pickup"\n"71","dodge","ram 1500 pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"72","dodge","ram 1500 pickup 4wd",5.2,1999,8,"manual(m5)","4",11,16,"r","pickup"\n"73","dodge","ram 1500 pickup 4wd",5.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"74","dodge","ram 1500 pickup 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"75","ford","expedition 2wd",4.6,1999,8,"auto(l4)","r",11,17,"r","suv"\n"76","ford","expedition 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"77","ford","expedition 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"78","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"79","ford","explorer 4wd",4,1999,6,"manual(m5)","4",15,19,"r","suv"\n"80","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"81","ford","explorer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"82","ford","explorer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"83","ford","explorer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"84","ford","f150 pickup 4wd",4.2,1999,6,"auto(l4)","4",14,17,"r","pickup"\n"85","ford","f150 pickup 4wd",4.2,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"86","ford","f150 pickup 4wd",4.6,1999,8,"manual(m5)","4",13,16,"r","pickup"\n"87","ford","f150 pickup 4wd",4.6,1999,8,"auto(l4)","4",13,16,"r","pickup"\n"88","ford","f150 pickup 4wd",4.6,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"89","ford","f150 pickup 4wd",5.4,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"90","ford","f150 pickup 4wd",5.4,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"91","ford","mustang",3.8,1999,6,"manual(m5)","r",18,26,"r","subcompact"\n"92","ford","mustang",3.8,1999,6,"auto(l4)","r",18,25,"r","subcompact"\n"93","ford","mustang",4,2008,6,"manual(m5)","r",17,26,"r","subcompact"\n"94","ford","mustang",4,2008,6,"auto(l5)","r",16,24,"r","subcompact"\n"95","ford","mustang",4.6,1999,8,"auto(l4)","r",15,21,"r","subcompact"\n"96","ford","mustang",4.6,1999,8,"manual(m5)","r",15,22,"r","subcompact"\n"97","ford","mustang",4.6,2008,8,"manual(m5)","r",15,23,"r","subcompact"\n"98","ford","mustang",4.6,2008,8,"auto(l5)","r",15,22,"r","subcompact"\n"99","ford","mustang",5.4,2008,8,"manual(m6)","r",14,20,"p","subcompact"\n"100","honda","civic",1.6,1999,4,"manual(m5)","f",28,33,"r","subcompact"\n"101","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"102","honda","civic",1.6,1999,4,"manual(m5)","f",25,32,"r","subcompact"\n"103","honda","civic",1.6,1999,4,"manual(m5)","f",23,29,"p","subcompact"\n"104","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"105","honda","civic",1.8,2008,4,"manual(m5)","f",26,34,"r","subcompact"\n"106","honda","civic",1.8,2008,4,"auto(l5)","f",25,36,"r","subcompact"\n"107","honda","civic",1.8,2008,4,"auto(l5)","f",24,36,"c","subcompact"\n"108","honda","civic",2,2008,4,"manual(m6)","f",21,29,"p","subcompact"\n"109","hyundai","sonata",2.4,1999,4,"auto(l4)","f",18,26,"r","midsize"\n"110","hyundai","sonata",2.4,1999,4,"manual(m5)","f",18,27,"r","midsize"\n"111","hyundai","sonata",2.4,2008,4,"auto(l4)","f",21,30,"r","midsize"\n"112","hyundai","sonata",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"113","hyundai","sonata",2.5,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"114","hyundai","sonata",2.5,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"115","hyundai","sonata",3.3,2008,6,"auto(l5)","f",19,28,"r","midsize"\n"116","hyundai","tiburon",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"117","hyundai","tiburon",2,1999,4,"manual(m5)","f",19,29,"r","subcompact"\n"118","hyundai","tiburon",2,2008,4,"manual(m5)","f",20,28,"r","subcompact"\n"119","hyundai","tiburon",2,2008,4,"auto(l4)","f",20,27,"r","subcompact"\n"120","hyundai","tiburon",2.7,2008,6,"auto(l4)","f",17,24,"r","subcompact"\n"121","hyundai","tiburon",2.7,2008,6,"manual(m6)","f",16,24,"r","subcompact"\n"122","hyundai","tiburon",2.7,2008,6,"manual(m5)","f",17,24,"r","subcompact"\n"123","jeep","grand cherokee 4wd",3,2008,6,"auto(l5)","4",17,22,"d","suv"\n"124","jeep","grand cherokee 4wd",3.7,2008,6,"auto(l5)","4",15,19,"r","suv"\n"125","jeep","grand cherokee 4wd",4,1999,6,"auto(l4)","4",15,20,"r","suv"\n"126","jeep","grand cherokee 4wd",4.7,1999,8,"auto(l4)","4",14,17,"r","suv"\n"127","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"128","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","suv"\n"129","jeep","grand cherokee 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"130","jeep","grand cherokee 4wd",6.1,2008,8,"auto(l5)","4",11,14,"p","suv"\n"131","land rover","range rover",4,1999,8,"auto(l4)","4",11,15,"p","suv"\n"132","land rover","range rover",4.2,2008,8,"auto(s6)","4",12,18,"r","suv"\n"133","land rover","range rover",4.4,2008,8,"auto(s6)","4",12,18,"r","suv"\n"134","land rover","range rover",4.6,1999,8,"auto(l4)","4",11,15,"p","suv"\n"135","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"136","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,16,"p","suv"\n"137","lincoln","navigator 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"138","mercury","mountaineer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"139","mercury","mountaineer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"140","mercury","mountaineer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"141","mercury","mountaineer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"142","nissan","altima",2.4,1999,4,"manual(m5)","f",21,29,"r","compact"\n"143","nissan","altima",2.4,1999,4,"auto(l4)","f",19,27,"r","compact"\n"144","nissan","altima",2.5,2008,4,"auto(av)","f",23,31,"r","midsize"\n"145","nissan","altima",2.5,2008,4,"manual(m6)","f",23,32,"r","midsize"\n"146","nissan","altima",3.5,2008,6,"manual(m6)","f",19,27,"p","midsize"\n"147","nissan","altima",3.5,2008,6,"auto(av)","f",19,26,"p","midsize"\n"148","nissan","maxima",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"149","nissan","maxima",3,1999,6,"manual(m5)","f",19,25,"r","midsize"\n"150","nissan","maxima",3.5,2008,6,"auto(av)","f",19,25,"p","midsize"\n"151","nissan","pathfinder 4wd",3.3,1999,6,"auto(l4)","4",14,17,"r","suv"\n"152","nissan","pathfinder 4wd",3.3,1999,6,"manual(m5)","4",15,17,"r","suv"\n"153","nissan","pathfinder 4wd",4,2008,6,"auto(l5)","4",14,20,"p","suv"\n"154","nissan","pathfinder 4wd",5.6,2008,8,"auto(s5)","4",12,18,"p","suv"\n"155","pontiac","grand prix",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"156","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",16,26,"p","midsize"\n"157","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",17,27,"r","midsize"\n"158","pontiac","grand prix",3.8,2008,6,"auto(l4)","f",18,28,"r","midsize"\n"159","pontiac","grand prix",5.3,2008,8,"auto(s4)","f",16,25,"p","midsize"\n"160","subaru","forester awd",2.5,1999,4,"manual(m5)","4",18,25,"r","suv"\n"161","subaru","forester awd",2.5,1999,4,"auto(l4)","4",18,24,"r","suv"\n"162","subaru","forester awd",2.5,2008,4,"manual(m5)","4",20,27,"r","suv"\n"163","subaru","forester awd",2.5,2008,4,"manual(m5)","4",19,25,"p","suv"\n"164","subaru","forester awd",2.5,2008,4,"auto(l4)","4",20,26,"r","suv"\n"165","subaru","forester awd",2.5,2008,4,"auto(l4)","4",18,23,"p","suv"\n"166","subaru","impreza awd",2.2,1999,4,"auto(l4)","4",21,26,"r","subcompact"\n"167","subaru","impreza awd",2.2,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"168","subaru","impreza awd",2.5,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"169","subaru","impreza awd",2.5,1999,4,"auto(l4)","4",19,26,"r","subcompact"\n"170","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,25,"p","compact"\n"171","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,27,"r","compact"\n"172","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",19,25,"p","compact"\n"173","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",20,27,"r","compact"\n"174","toyota","4runner 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","suv"\n"175","toyota","4runner 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","suv"\n"176","toyota","4runner 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","suv"\n"177","toyota","4runner 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","suv"\n"178","toyota","4runner 4wd",4,2008,6,"auto(l5)","4",16,20,"r","suv"\n"179","toyota","4runner 4wd",4.7,2008,8,"auto(l5)","4",14,17,"r","suv"\n"180","toyota","camry",2.2,1999,4,"manual(m5)","f",21,29,"r","midsize"\n"181","toyota","camry",2.2,1999,4,"auto(l4)","f",21,27,"r","midsize"\n"182","toyota","camry",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"183","toyota","camry",2.4,2008,4,"auto(l5)","f",21,31,"r","midsize"\n"184","toyota","camry",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"185","toyota","camry",3,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"186","toyota","camry",3.5,2008,6,"auto(s6)","f",19,28,"r","midsize"\n"187","toyota","camry solara",2.2,1999,4,"auto(l4)","f",21,27,"r","compact"\n"188","toyota","camry solara",2.2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"189","toyota","camry solara",2.4,2008,4,"manual(m5)","f",21,31,"r","compact"\n"190","toyota","camry solara",2.4,2008,4,"auto(s5)","f",22,31,"r","compact"\n"191","toyota","camry solara",3,1999,6,"auto(l4)","f",18,26,"r","compact"\n"192","toyota","camry solara",3,1999,6,"manual(m5)","f",18,26,"r","compact"\n"193","toyota","camry solara",3.3,2008,6,"auto(s5)","f",18,27,"r","compact"\n"194","toyota","corolla",1.8,1999,4,"auto(l3)","f",24,30,"r","compact"\n"195","toyota","corolla",1.8,1999,4,"auto(l4)","f",24,33,"r","compact"\n"196","toyota","corolla",1.8,1999,4,"manual(m5)","f",26,35,"r","compact"\n"197","toyota","corolla",1.8,2008,4,"manual(m5)","f",28,37,"r","compact"\n"198","toyota","corolla",1.8,2008,4,"auto(l4)","f",26,35,"r","compact"\n"199","toyota","land cruiser wagon 4wd",4.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"200","toyota","land cruiser wagon 4wd",5.7,2008,8,"auto(s6)","4",13,18,"r","suv"\n"201","toyota","toyota tacoma 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","pickup"\n"202","toyota","toyota tacoma 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","pickup"\n"203","toyota","toyota tacoma 4wd",2.7,2008,4,"manual(m5)","4",17,22,"r","pickup"\n"204","toyota","toyota tacoma 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","pickup"\n"205","toyota","toyota tacoma 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","pickup"\n"206","toyota","toyota tacoma 4wd",4,2008,6,"manual(m6)","4",15,18,"r","pickup"\n"207","toyota","toyota tacoma 4wd",4,2008,6,"auto(l5)","4",16,20,"r","pickup"\n"208","volkswagen","gti",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"209","volkswagen","gti",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"210","volkswagen","gti",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"211","volkswagen","gti",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"212","volkswagen","gti",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"213","volkswagen","jetta",1.9,1999,4,"manual(m5)","f",33,44,"d","compact"\n"214","volkswagen","jetta",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"215","volkswagen","jetta",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"216","volkswagen","jetta",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"217","volkswagen","jetta",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"218","volkswagen","jetta",2.5,2008,5,"auto(s6)","f",21,29,"r","compact"\n"219","volkswagen","jetta",2.5,2008,5,"manual(m5)","f",21,29,"r","compact"\n"220","volkswagen","jetta",2.8,1999,6,"auto(l4)","f",16,23,"r","compact"\n"221","volkswagen","jetta",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"222","volkswagen","new beetle",1.9,1999,4,"manual(m5)","f",35,44,"d","subcompact"\n"223","volkswagen","new beetle",1.9,1999,4,"auto(l4)","f",29,41,"d","subcompact"\n"224","volkswagen","new beetle",2,1999,4,"manual(m5)","f",21,29,"r","subcompact"\n"225","volkswagen","new beetle",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"226","volkswagen","new beetle",2.5,2008,5,"manual(m5)","f",20,28,"r","subcompact"\n"227","volkswagen","new beetle",2.5,2008,5,"auto(s6)","f",20,29,"r","subcompact"\n"228","volkswagen","passat",1.8,1999,4,"manual(m5)","f",21,29,"p","midsize"\n"229","volkswagen","passat",1.8,1999,4,"auto(l5)","f",18,29,"p","midsize"\n"230","volkswagen","passat",2,2008,4,"auto(s6)","f",19,28,"p","midsize"\n"231","volkswagen","passat",2,2008,4,"manual(m6)","f",21,29,"p","midsize"\n"232","volkswagen","passat",2.8,1999,6,"auto(l5)","f",16,26,"p","midsize"\n"233","volkswagen","passat",2.8,1999,6,"manual(m5)","f",18,26,"p","midsize"\n"234","volkswagen","passat",3.6,2008,6,"auto(s6)","f",17,26,"p","midsize"\n'


This looks much better. At least, it's reabable. However, it's still in the form of a string. Let's convert it into our required format.

In [14]:
from io import StringIO
# Decoding & formatting
data=csv.reader(StringIO(content.decode('utf-8')))
#Printing the first 5 rows
for row in list(data)[:5]:
    print(row)
['', 'manufacturer', 'model', 'displ', 'year', 'cyl', 'trans', 'drv', 'cty', 'hwy', 'fl', 'class']
['1', 'audi', 'a4', '1.8', '1999', '4', 'auto(l5)', 'f', '18', '29', 'p', 'compact']
['2', 'audi', 'a4', '1.8', '1999', '4', 'manual(m5)', 'f', '21', '29', 'p', 'compact']
['3', 'audi', 'a4', '2', '2008', '4', 'manual(m6)', 'f', '20', '31', 'p', 'compact']
['4', 'audi', 'a4', '2', '2008', '4', 'auto(av)', 'f', '21', '30', 'p', 'compact']


Looks great! Now we already know how to convert the data into a Python dictionary.

In [15]:
# Converting aata to a dictionary format
data=list(csv.DictReader(StringIO(content.decode('utf-8'))))
# Printing the first 2 rows
data[:2]
Out[15]:
[{'': '1',
  'manufacturer': 'audi',
  'model': 'a4',
  'displ': '1.8',
  'year': '1999',
  'cyl': '4',
  'trans': 'auto(l5)',
  'drv': 'f',
  'cty': '18',
  'hwy': '29',
  'fl': 'p',
  'class': 'compact'},
 {'': '2',
  'manufacturer': 'audi',
  'model': 'a4',
  'displ': '1.8',
  'year': '1999',
  'cyl': '4',
  'trans': 'manual(m5)',
  'drv': 'f',
  'cty': '21',
  'hwy': '29',
  'fl': 'p',
  'class': 'compact'}]

Project files

ref

Get a file:

In [16]:
f=project.files.get(file_path='mpg.csv', ref='master')
# get the base64 encoded content
print(f.content)
IiIsIm1hbnVmYWN0dXJlciIsIm1vZGVsIiwiZGlzcGwiLCJ5ZWFyIiwiY3lsIiwidHJhbnMiLCJkcnYiLCJjdHkiLCJod3kiLCJmbCIsImNsYXNzIgoiMSIsImF1ZGkiLCJhNCIsMS44LDE5OTksNCwiYXV0byhsNSkiLCJmIiwxOCwyOSwicCIsImNvbXBhY3QiCiIyIiwiYXVkaSIsImE0IiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjEsMjksInAiLCJjb21wYWN0IgoiMyIsImF1ZGkiLCJhNCIsMiwyMDA4LDQsIm1hbnVhbChtNikiLCJmIiwyMCwzMSwicCIsImNvbXBhY3QiCiI0IiwiYXVkaSIsImE0IiwyLDIwMDgsNCwiYXV0byhhdikiLCJmIiwyMSwzMCwicCIsImNvbXBhY3QiCiI1IiwiYXVkaSIsImE0IiwyLjgsMTk5OSw2LCJhdXRvKGw1KSIsImYiLDE2LDI2LCJwIiwiY29tcGFjdCIKIjYiLCJhdWRpIiwiYTQiLDIuOCwxOTk5LDYsIm1hbnVhbChtNSkiLCJmIiwxOCwyNiwicCIsImNvbXBhY3QiCiI3IiwiYXVkaSIsImE0IiwzLjEsMjAwOCw2LCJhdXRvKGF2KSIsImYiLDE4LDI3LCJwIiwiY29tcGFjdCIKIjgiLCJhdWRpIiwiYTQgcXVhdHRybyIsMS44LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE4LDI2LCJwIiwiY29tcGFjdCIKIjkiLCJhdWRpIiwiYTQgcXVhdHRybyIsMS44LDE5OTksNCwiYXV0byhsNSkiLCI0IiwxNiwyNSwicCIsImNvbXBhY3QiCiIxMCIsImF1ZGkiLCJhNCBxdWF0dHJvIiwyLDIwMDgsNCwibWFudWFsKG02KSIsIjQiLDIwLDI4LCJwIiwiY29tcGFjdCIKIjExIiwiYXVkaSIsImE0IHF1YXR0cm8iLDIsMjAwOCw0LCJhdXRvKHM2KSIsIjQiLDE5LDI3LCJwIiwiY29tcGFjdCIKIjEyIiwiYXVkaSIsImE0IHF1YXR0cm8iLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTUsMjUsInAiLCJjb21wYWN0IgoiMTMiLCJhdWRpIiwiYTQgcXVhdHRybyIsMi44LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE3LDI1LCJwIiwiY29tcGFjdCIKIjE0IiwiYXVkaSIsImE0IHF1YXR0cm8iLDMuMSwyMDA4LDYsImF1dG8oczYpIiwiNCIsMTcsMjUsInAiLCJjb21wYWN0IgoiMTUiLCJhdWRpIiwiYTQgcXVhdHRybyIsMy4xLDIwMDgsNiwibWFudWFsKG02KSIsIjQiLDE1LDI1LCJwIiwiY29tcGFjdCIKIjE2IiwiYXVkaSIsImE2IHF1YXR0cm8iLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTUsMjQsInAiLCJtaWRzaXplIgoiMTciLCJhdWRpIiwiYTYgcXVhdHRybyIsMy4xLDIwMDgsNiwiYXV0byhzNikiLCI0IiwxNywyNSwicCIsIm1pZHNpemUiCiIxOCIsImF1ZGkiLCJhNiBxdWF0dHJvIiw0LjIsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDE2LDIzLCJwIiwibWlkc2l6ZSIKIjE5IiwiY2hldnJvbGV0IiwiYzE1MDAgc3VidXJiYW4gMndkIiw1LjMsMjAwOCw4LCJhdXRvKGw0KSIsInIiLDE0LDIwLCJyIiwic3V2IgoiMjAiLCJjaGV2cm9sZXQiLCJjMTUwMCBzdWJ1cmJhbiAyd2QiLDUuMywyMDA4LDgsImF1dG8obDQpIiwiciIsMTEsMTUsImUiLCJzdXYiCiIyMSIsImNoZXZyb2xldCIsImMxNTAwIHN1YnVyYmFuIDJ3ZCIsNS4zLDIwMDgsOCwiYXV0byhsNCkiLCJyIiwxNCwyMCwiciIsInN1diIKIjIyIiwiY2hldnJvbGV0IiwiYzE1MDAgc3VidXJiYW4gMndkIiw1LjcsMTk5OSw4LCJhdXRvKGw0KSIsInIiLDEzLDE3LCJyIiwic3V2IgoiMjMiLCJjaGV2cm9sZXQiLCJjMTUwMCBzdWJ1cmJhbiAyd2QiLDYsMjAwOCw4LCJhdXRvKGw0KSIsInIiLDEyLDE3LCJyIiwic3V2IgoiMjQiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNS43LDE5OTksOCwibWFudWFsKG02KSIsInIiLDE2LDI2LCJwIiwiMnNlYXRlciIKIjI1IiwiY2hldnJvbGV0IiwiY29ydmV0dGUiLDUuNywxOTk5LDgsImF1dG8obDQpIiwiciIsMTUsMjMsInAiLCIyc2VhdGVyIgoiMjYiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNi4yLDIwMDgsOCwibWFudWFsKG02KSIsInIiLDE2LDI2LCJwIiwiMnNlYXRlciIKIjI3IiwiY2hldnJvbGV0IiwiY29ydmV0dGUiLDYuMiwyMDA4LDgsImF1dG8oczYpIiwiciIsMTUsMjUsInAiLCIyc2VhdGVyIgoiMjgiLCJjaGV2cm9sZXQiLCJjb3J2ZXR0ZSIsNywyMDA4LDgsIm1hbnVhbChtNikiLCJyIiwxNSwyNCwicCIsIjJzZWF0ZXIiCiIyOSIsImNoZXZyb2xldCIsImsxNTAwIHRhaG9lIDR3ZCIsNS4zLDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxNCwxOSwiciIsInN1diIKIjMwIiwiY2hldnJvbGV0IiwiazE1MDAgdGFob2UgNHdkIiw1LjMsMjAwOCw4LCJhdXRvKGw0KSIsIjQiLDExLDE0LCJlIiwic3V2IgoiMzEiLCJjaGV2cm9sZXQiLCJrMTUwMCB0YWhvZSA0d2QiLDUuNywxOTk5LDgsImF1dG8obDQpIiwiNCIsMTEsMTUsInIiLCJzdXYiCiIzMiIsImNoZXZyb2xldCIsImsxNTAwIHRhaG9lIDR3ZCIsNi41LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxNCwxNywiZCIsInN1diIKIjMzIiwiY2hldnJvbGV0IiwibWFsaWJ1IiwyLjQsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI3LCJyIiwibWlkc2l6ZSIKIjM0IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwyLjQsMjAwOCw0LCJhdXRvKGw0KSIsImYiLDIyLDMwLCJyIiwibWlkc2l6ZSIKIjM1IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjEsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjM2IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjUsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE4LDI5LCJyIiwibWlkc2l6ZSIKIjM3IiwiY2hldnJvbGV0IiwibWFsaWJ1IiwzLjYsMjAwOCw2LCJhdXRvKHM2KSIsImYiLDE3LDI2LCJyIiwibWlkc2l6ZSIKIjM4IiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMi40LDE5OTksNCwiYXV0byhsMykiLCJmIiwxOCwyNCwiciIsIm1pbml2YW4iCiIzOSIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwibWluaXZhbiIKIjQwIiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy4zLDE5OTksNiwiYXV0byhsNCkiLCJmIiwxNiwyMiwiciIsIm1pbml2YW4iCiI0MSIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuMywxOTk5LDYsImF1dG8obDQpIiwiZiIsMTYsMjIsInIiLCJtaW5pdmFuIgoiNDIiLCJkb2RnZSIsImNhcmF2YW4gMndkIiwzLjMsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwibWluaXZhbiIKIjQzIiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy4zLDIwMDgsNiwiYXV0byhsNCkiLCJmIiwxNywyNCwiciIsIm1pbml2YW4iCiI0NCIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuMywyMDA4LDYsImF1dG8obDQpIiwiZiIsMTEsMTcsImUiLCJtaW5pdmFuIgoiNDUiLCJkb2RnZSIsImNhcmF2YW4gMndkIiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE1LDIyLCJyIiwibWluaXZhbiIKIjQ2IiwiZG9kZ2UiLCJjYXJhdmFuIDJ3ZCIsMy44LDE5OTksNiwiYXV0byhsNCkiLCJmIiwxNSwyMSwiciIsIm1pbml2YW4iCiI0NyIsImRvZGdlIiwiY2FyYXZhbiAyd2QiLDMuOCwyMDA4LDYsImF1dG8obDYpIiwiZiIsMTYsMjMsInIiLCJtaW5pdmFuIgoiNDgiLCJkb2RnZSIsImNhcmF2YW4gMndkIiw0LDIwMDgsNiwiYXV0byhsNikiLCJmIiwxNiwyMywiciIsIm1pbml2YW4iCiI0OSIsImRvZGdlIiwiZGFrb3RhIHBpY2t1cCA0d2QiLDMuNywyMDA4LDYsIm1hbnVhbChtNikiLCI0IiwxNSwxOSwiciIsInBpY2t1cCIKIjUwIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy43LDIwMDgsNiwiYXV0byhsNCkiLCI0IiwxNCwxOCwiciIsInBpY2t1cCIKIjUxIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy45LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjUyIiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsMy45LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE0LDE3LCJyIiwicGlja3VwIgoiNTMiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwicGlja3VwIgoiNTQiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwicGlja3VwIgoiNTUiLCJkb2RnZSIsImRha290YSBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJwaWNrdXAiCiI1NiIsImRvZGdlIiwiZGFrb3RhIHBpY2t1cCA0d2QiLDUuMiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMSwxNywiciIsInBpY2t1cCIKIjU3IiwiZG9kZ2UiLCJkYWtvdGEgcGlja3VwIDR3ZCIsNS4yLDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInBpY2t1cCIKIjU4IiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsMy45LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInN1diIKIjU5IiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxNywiciIsInN1diIKIjYwIiwiZG9kZ2UiLCJkdXJhbmdvIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0Iiw5LDEyLCJlIiwic3V2IgoiNjEiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwic3V2IgoiNjIiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjIsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE2LCJyIiwic3V2IgoiNjMiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE4LCJyIiwic3V2IgoiNjQiLCJkb2RnZSIsImR1cmFuZ28gNHdkIiw1LjksMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJyIiwic3V2IgoiNjUiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDQuNywyMDA4LDgsIm1hbnVhbChtNikiLCI0IiwxMiwxNiwiciIsInBpY2t1cCIKIjY2IiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJwaWNrdXAiCiI2NyIsImRvZGdlIiwicmFtIDE1MDAgcGlja3VwIDR3ZCIsNC43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjY4IiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwicGlja3VwIgoiNjkiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDQuNywyMDA4LDgsIm1hbnVhbChtNikiLCI0IiwxMiwxNiwiciIsInBpY2t1cCIKIjcwIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw0LjcsMjAwOCw4LCJtYW51YWwobTYpIiwiNCIsOSwxMiwiZSIsInBpY2t1cCIKIjcxIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw1LjIsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJyIiwicGlja3VwIgoiNzIiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDUuMiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMSwxNiwiciIsInBpY2t1cCIKIjczIiwiZG9kZ2UiLCJyYW0gMTUwMCBwaWNrdXAgNHdkIiw1LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDEzLDE3LCJyIiwicGlja3VwIgoiNzQiLCJkb2RnZSIsInJhbSAxNTAwIHBpY2t1cCA0d2QiLDUuOSwxOTk5LDgsImF1dG8obDQpIiwiNCIsMTEsMTUsInIiLCJwaWNrdXAiCiI3NSIsImZvcmQiLCJleHBlZGl0aW9uIDJ3ZCIsNC42LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxMSwxNywiciIsInN1diIKIjc2IiwiZm9yZCIsImV4cGVkaXRpb24gMndkIiw1LjQsMTk5OSw4LCJhdXRvKGw0KSIsInIiLDExLDE3LCJyIiwic3V2IgoiNzciLCJmb3JkIiwiZXhwZWRpdGlvbiAyd2QiLDUuNCwyMDA4LDgsImF1dG8obDYpIiwiciIsMTIsMTgsInIiLCJzdXYiCiI3OCIsImZvcmQiLCJleHBsb3JlciA0d2QiLDQsMTk5OSw2LCJhdXRvKGw1KSIsIjQiLDE0LDE3LCJyIiwic3V2IgoiNzkiLCJmb3JkIiwiZXhwbG9yZXIgNHdkIiw0LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE1LDE5LCJyIiwic3V2IgoiODAiLCJmb3JkIiwiZXhwbG9yZXIgNHdkIiw0LDE5OTksNiwiYXV0byhsNSkiLCI0IiwxNCwxNywiciIsInN1diIKIjgxIiwiZm9yZCIsImV4cGxvcmVyIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTMsMTksInIiLCJzdXYiCiI4MiIsImZvcmQiLCJleHBsb3JlciA0d2QiLDQuNiwyMDA4LDgsImF1dG8obDYpIiwiNCIsMTMsMTksInIiLCJzdXYiCiI4MyIsImZvcmQiLCJleHBsb3JlciA0d2QiLDUsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDEzLDE3LCJyIiwic3V2IgoiODQiLCJmb3JkIiwiZjE1MCBwaWNrdXAgNHdkIiw0LjIsMTk5OSw2LCJhdXRvKGw0KSIsIjQiLDE0LDE3LCJyIiwicGlja3VwIgoiODUiLCJmb3JkIiwiZjE1MCBwaWNrdXAgNHdkIiw0LjIsMTk5OSw2LCJtYW51YWwobTUpIiwiNCIsMTQsMTcsInIiLCJwaWNrdXAiCiI4NiIsImZvcmQiLCJmMTUwIHBpY2t1cCA0d2QiLDQuNiwxOTk5LDgsIm1hbnVhbChtNSkiLCI0IiwxMywxNiwiciIsInBpY2t1cCIKIjg3IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNC42LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMywxNiwiciIsInBpY2t1cCIKIjg4IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNC42LDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjg5IiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNS40LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInBpY2t1cCIKIjkwIiwiZm9yZCIsImYxNTAgcGlja3VwIDR3ZCIsNS40LDIwMDgsOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInBpY2t1cCIKIjkxIiwiZm9yZCIsIm11c3RhbmciLDMuOCwxOTk5LDYsIm1hbnVhbChtNSkiLCJyIiwxOCwyNiwiciIsInN1YmNvbXBhY3QiCiI5MiIsImZvcmQiLCJtdXN0YW5nIiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsInIiLDE4LDI1LCJyIiwic3ViY29tcGFjdCIKIjkzIiwiZm9yZCIsIm11c3RhbmciLDQsMjAwOCw2LCJtYW51YWwobTUpIiwiciIsMTcsMjYsInIiLCJzdWJjb21wYWN0IgoiOTQiLCJmb3JkIiwibXVzdGFuZyIsNCwyMDA4LDYsImF1dG8obDUpIiwiciIsMTYsMjQsInIiLCJzdWJjb21wYWN0IgoiOTUiLCJmb3JkIiwibXVzdGFuZyIsNC42LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxNSwyMSwiciIsInN1YmNvbXBhY3QiCiI5NiIsImZvcmQiLCJtdXN0YW5nIiw0LjYsMTk5OSw4LCJtYW51YWwobTUpIiwiciIsMTUsMjIsInIiLCJzdWJjb21wYWN0IgoiOTciLCJmb3JkIiwibXVzdGFuZyIsNC42LDIwMDgsOCwibWFudWFsKG01KSIsInIiLDE1LDIzLCJyIiwic3ViY29tcGFjdCIKIjk4IiwiZm9yZCIsIm11c3RhbmciLDQuNiwyMDA4LDgsImF1dG8obDUpIiwiciIsMTUsMjIsInIiLCJzdWJjb21wYWN0IgoiOTkiLCJmb3JkIiwibXVzdGFuZyIsNS40LDIwMDgsOCwibWFudWFsKG02KSIsInIiLDE0LDIwLCJwIiwic3ViY29tcGFjdCIKIjEwMCIsImhvbmRhIiwiY2l2aWMiLDEuNiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyOCwzMywiciIsInN1YmNvbXBhY3QiCiIxMDEiLCJob25kYSIsImNpdmljIiwxLjYsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDI0LDMyLCJyIiwic3ViY29tcGFjdCIKIjEwMiIsImhvbmRhIiwiY2l2aWMiLDEuNiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyNSwzMiwiciIsInN1YmNvbXBhY3QiCiIxMDMiLCJob25kYSIsImNpdmljIiwxLjYsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjMsMjksInAiLCJzdWJjb21wYWN0IgoiMTA0IiwiaG9uZGEiLCJjaXZpYyIsMS42LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyNCwzMiwiciIsInN1YmNvbXBhY3QiCiIxMDUiLCJob25kYSIsImNpdmljIiwxLjgsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjYsMzQsInIiLCJzdWJjb21wYWN0IgoiMTA2IiwiaG9uZGEiLCJjaXZpYyIsMS44LDIwMDgsNCwiYXV0byhsNSkiLCJmIiwyNSwzNiwiciIsInN1YmNvbXBhY3QiCiIxMDciLCJob25kYSIsImNpdmljIiwxLjgsMjAwOCw0LCJhdXRvKGw1KSIsImYiLDI0LDM2LCJjIiwic3ViY29tcGFjdCIKIjEwOCIsImhvbmRhIiwiY2l2aWMiLDIsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjEsMjksInAiLCJzdWJjb21wYWN0IgoiMTA5IiwiaHl1bmRhaSIsInNvbmF0YSIsMi40LDE5OTksNCwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsIm1pZHNpemUiCiIxMTAiLCJoeXVuZGFpIiwic29uYXRhIiwyLjQsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMTgsMjcsInIiLCJtaWRzaXplIgoiMTExIiwiaHl1bmRhaSIsInNvbmF0YSIsMi40LDIwMDgsNCwiYXV0byhsNCkiLCJmIiwyMSwzMCwiciIsIm1pZHNpemUiCiIxMTIiLCJoeXVuZGFpIiwic29uYXRhIiwyLjQsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTEzIiwiaHl1bmRhaSIsInNvbmF0YSIsMi41LDE5OTksNiwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsIm1pZHNpemUiCiIxMTQiLCJoeXVuZGFpIiwic29uYXRhIiwyLjUsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTgsMjYsInIiLCJtaWRzaXplIgoiMTE1IiwiaHl1bmRhaSIsInNvbmF0YSIsMy4zLDIwMDgsNiwiYXV0byhsNSkiLCJmIiwxOSwyOCwiciIsIm1pZHNpemUiCiIxMTYiLCJoeXVuZGFpIiwidGlidXJvbiIsMiwxOTk5LDQsImF1dG8obDQpIiwiZiIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMTE3IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMTksMjksInIiLCJzdWJjb21wYWN0IgoiMTE4IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjAsMjgsInIiLCJzdWJjb21wYWN0IgoiMTE5IiwiaHl1bmRhaSIsInRpYnVyb24iLDIsMjAwOCw0LCJhdXRvKGw0KSIsImYiLDIwLDI3LCJyIiwic3ViY29tcGFjdCIKIjEyMCIsImh5dW5kYWkiLCJ0aWJ1cm9uIiwyLjcsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE3LDI0LCJyIiwic3ViY29tcGFjdCIKIjEyMSIsImh5dW5kYWkiLCJ0aWJ1cm9uIiwyLjcsMjAwOCw2LCJtYW51YWwobTYpIiwiZiIsMTYsMjQsInIiLCJzdWJjb21wYWN0IgoiMTIyIiwiaHl1bmRhaSIsInRpYnVyb24iLDIuNywyMDA4LDYsIm1hbnVhbChtNSkiLCJmIiwxNywyNCwiciIsInN1YmNvbXBhY3QiCiIxMjMiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiwzLDIwMDgsNiwiYXV0byhsNSkiLCI0IiwxNywyMiwiZCIsInN1diIKIjEyNCIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDMuNywyMDA4LDYsImF1dG8obDUpIiwiNCIsMTUsMTksInIiLCJzdXYiCiIxMjUiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LDE5OTksNiwiYXV0byhsNCkiLCI0IiwxNSwyMCwiciIsInN1diIKIjEyNiIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDQuNywxOTk5LDgsImF1dG8obDQpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxMjciLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDksMTIsImUiLCJzdXYiCiIxMjgiLCJqZWVwIiwiZ3JhbmQgY2hlcm9rZWUgNHdkIiw0LjcsMjAwOCw4LCJhdXRvKGw1KSIsIjQiLDE0LDE5LCJyIiwic3V2IgoiMTI5IiwiamVlcCIsImdyYW5kIGNoZXJva2VlIDR3ZCIsNS43LDIwMDgsOCwiYXV0byhsNSkiLCI0IiwxMywxOCwiciIsInN1diIKIjEzMCIsImplZXAiLCJncmFuZCBjaGVyb2tlZSA0d2QiLDYuMSwyMDA4LDgsImF1dG8obDUpIiwiNCIsMTEsMTQsInAiLCJzdXYiCiIxMzEiLCJsYW5kIHJvdmVyIiwicmFuZ2Ugcm92ZXIiLDQsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJwIiwic3V2IgoiMTMyIiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjIsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDEyLDE4LCJyIiwic3V2IgoiMTMzIiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjQsMjAwOCw4LCJhdXRvKHM2KSIsIjQiLDEyLDE4LCJyIiwic3V2IgoiMTM0IiwibGFuZCByb3ZlciIsInJhbmdlIHJvdmVyIiw0LjYsMTk5OSw4LCJhdXRvKGw0KSIsIjQiLDExLDE1LCJwIiwic3V2IgoiMTM1IiwibGluY29sbiIsIm5hdmlnYXRvciAyd2QiLDUuNCwxOTk5LDgsImF1dG8obDQpIiwiciIsMTEsMTcsInIiLCJzdXYiCiIxMzYiLCJsaW5jb2xuIiwibmF2aWdhdG9yIDJ3ZCIsNS40LDE5OTksOCwiYXV0byhsNCkiLCJyIiwxMSwxNiwicCIsInN1diIKIjEzNyIsImxpbmNvbG4iLCJuYXZpZ2F0b3IgMndkIiw1LjQsMjAwOCw4LCJhdXRvKGw2KSIsInIiLDEyLDE4LCJyIiwic3V2IgoiMTM4IiwibWVyY3VyeSIsIm1vdW50YWluZWVyIDR3ZCIsNCwxOTk5LDYsImF1dG8obDUpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxMzkiLCJtZXJjdXJ5IiwibW91bnRhaW5lZXIgNHdkIiw0LDIwMDgsNiwiYXV0byhsNSkiLCI0IiwxMywxOSwiciIsInN1diIKIjE0MCIsIm1lcmN1cnkiLCJtb3VudGFpbmVlciA0d2QiLDQuNiwyMDA4LDgsImF1dG8obDYpIiwiNCIsMTMsMTksInIiLCJzdXYiCiIxNDEiLCJtZXJjdXJ5IiwibW91bnRhaW5lZXIgNHdkIiw1LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMywxNywiciIsInN1diIKIjE0MiIsIm5pc3NhbiIsImFsdGltYSIsMi40LDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwiY29tcGFjdCIKIjE0MyIsIm5pc3NhbiIsImFsdGltYSIsMi40LDE5OTksNCwiYXV0byhsNCkiLCJmIiwxOSwyNywiciIsImNvbXBhY3QiCiIxNDQiLCJuaXNzYW4iLCJhbHRpbWEiLDIuNSwyMDA4LDQsImF1dG8oYXYpIiwiZiIsMjMsMzEsInIiLCJtaWRzaXplIgoiMTQ1Iiwibmlzc2FuIiwiYWx0aW1hIiwyLjUsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjMsMzIsInIiLCJtaWRzaXplIgoiMTQ2Iiwibmlzc2FuIiwiYWx0aW1hIiwzLjUsMjAwOCw2LCJtYW51YWwobTYpIiwiZiIsMTksMjcsInAiLCJtaWRzaXplIgoiMTQ3Iiwibmlzc2FuIiwiYWx0aW1hIiwzLjUsMjAwOCw2LCJhdXRvKGF2KSIsImYiLDE5LDI2LCJwIiwibWlkc2l6ZSIKIjE0OCIsIm5pc3NhbiIsIm1heGltYSIsMywxOTk5LDYsImF1dG8obDQpIiwiZiIsMTgsMjYsInIiLCJtaWRzaXplIgoiMTQ5Iiwibmlzc2FuIiwibWF4aW1hIiwzLDE5OTksNiwibWFudWFsKG01KSIsImYiLDE5LDI1LCJyIiwibWlkc2l6ZSIKIjE1MCIsIm5pc3NhbiIsIm1heGltYSIsMy41LDIwMDgsNiwiYXV0byhhdikiLCJmIiwxOSwyNSwicCIsIm1pZHNpemUiCiIxNTEiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsMy4zLDE5OTksNiwiYXV0byhsNCkiLCI0IiwxNCwxNywiciIsInN1diIKIjE1MiIsIm5pc3NhbiIsInBhdGhmaW5kZXIgNHdkIiwzLjMsMTk5OSw2LCJtYW51YWwobTUpIiwiNCIsMTUsMTcsInIiLCJzdXYiCiIxNTMiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTQsMjAsInAiLCJzdXYiCiIxNTQiLCJuaXNzYW4iLCJwYXRoZmluZGVyIDR3ZCIsNS42LDIwMDgsOCwiYXV0byhzNSkiLCI0IiwxMiwxOCwicCIsInN1diIKIjE1NSIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjEsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE1NiIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE2LDI2LCJwIiwibWlkc2l6ZSIKIjE1NyIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE3LDI3LCJyIiwibWlkc2l6ZSIKIjE1OCIsInBvbnRpYWMiLCJncmFuZCBwcml4IiwzLjgsMjAwOCw2LCJhdXRvKGw0KSIsImYiLDE4LDI4LCJyIiwibWlkc2l6ZSIKIjE1OSIsInBvbnRpYWMiLCJncmFuZCBwcml4Iiw1LjMsMjAwOCw4LCJhdXRvKHM0KSIsImYiLDE2LDI1LCJwIiwibWlkc2l6ZSIKIjE2MCIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE4LDI1LCJyIiwic3V2IgoiMTYxIiwic3ViYXJ1IiwiZm9yZXN0ZXIgYXdkIiwyLjUsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDE4LDI0LCJyIiwic3V2IgoiMTYyIiwic3ViYXJ1IiwiZm9yZXN0ZXIgYXdkIiwyLjUsMjAwOCw0LCJtYW51YWwobTUpIiwiNCIsMjAsMjcsInIiLCJzdXYiCiIxNjMiLCJzdWJhcnUiLCJmb3Jlc3RlciBhd2QiLDIuNSwyMDA4LDQsIm1hbnVhbChtNSkiLCI0IiwxOSwyNSwicCIsInN1diIKIjE2NCIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhsNCkiLCI0IiwyMCwyNiwiciIsInN1diIKIjE2NSIsInN1YmFydSIsImZvcmVzdGVyIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhsNCkiLCI0IiwxOCwyMywicCIsInN1diIKIjE2NiIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjIsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDIxLDI2LCJyIiwic3ViY29tcGFjdCIKIjE2NyIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjIsMTk5OSw0LCJtYW51YWwobTUpIiwiNCIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMTY4Iiwic3ViYXJ1IiwiaW1wcmV6YSBhd2QiLDIuNSwxOTk5LDQsIm1hbnVhbChtNSkiLCI0IiwxOSwyNiwiciIsInN1YmNvbXBhY3QiCiIxNjkiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDE5OTksNCwiYXV0byhsNCkiLCI0IiwxOSwyNiwiciIsInN1YmNvbXBhY3QiCiIxNzAiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhzNCkiLCI0IiwyMCwyNSwicCIsImNvbXBhY3QiCiIxNzEiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwiYXV0byhzNCkiLCI0IiwyMCwyNywiciIsImNvbXBhY3QiCiIxNzIiLCJzdWJhcnUiLCJpbXByZXphIGF3ZCIsMi41LDIwMDgsNCwibWFudWFsKG01KSIsIjQiLDE5LDI1LCJwIiwiY29tcGFjdCIKIjE3MyIsInN1YmFydSIsImltcHJlemEgYXdkIiwyLjUsMjAwOCw0LCJtYW51YWwobTUpIiwiNCIsMjAsMjcsInIiLCJjb21wYWN0IgoiMTc0IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDIuNywxOTk5LDQsIm1hbnVhbChtNSkiLCI0IiwxNSwyMCwiciIsInN1diIKIjE3NSIsInRveW90YSIsIjRydW5uZXIgNHdkIiwyLjcsMTk5OSw0LCJhdXRvKGw0KSIsIjQiLDE2LDIwLCJyIiwic3V2IgoiMTc2IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDMuNCwxOTk5LDYsImF1dG8obDQpIiwiNCIsMTUsMTksInIiLCJzdXYiCiIxNzciLCJ0b3lvdGEiLCI0cnVubmVyIDR3ZCIsMy40LDE5OTksNiwibWFudWFsKG01KSIsIjQiLDE1LDE3LCJyIiwic3V2IgoiMTc4IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDQsMjAwOCw2LCJhdXRvKGw1KSIsIjQiLDE2LDIwLCJyIiwic3V2IgoiMTc5IiwidG95b3RhIiwiNHJ1bm5lciA0d2QiLDQuNywyMDA4LDgsImF1dG8obDUpIiwiNCIsMTQsMTcsInIiLCJzdXYiCiIxODAiLCJ0b3lvdGEiLCJjYW1yeSIsMi4yLDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwibWlkc2l6ZSIKIjE4MSIsInRveW90YSIsImNhbXJ5IiwyLjIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDIxLDI3LCJyIiwibWlkc2l6ZSIKIjE4MiIsInRveW90YSIsImNhbXJ5IiwyLjQsMjAwOCw0LCJtYW51YWwobTUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTgzIiwidG95b3RhIiwiY2FtcnkiLDIuNCwyMDA4LDQsImF1dG8obDUpIiwiZiIsMjEsMzEsInIiLCJtaWRzaXplIgoiMTg0IiwidG95b3RhIiwiY2FtcnkiLDMsMTk5OSw2LCJhdXRvKGw0KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE4NSIsInRveW90YSIsImNhbXJ5IiwzLDE5OTksNiwibWFudWFsKG01KSIsImYiLDE4LDI2LCJyIiwibWlkc2l6ZSIKIjE4NiIsInRveW90YSIsImNhbXJ5IiwzLjUsMjAwOCw2LCJhdXRvKHM2KSIsImYiLDE5LDI4LCJyIiwibWlkc2l6ZSIKIjE4NyIsInRveW90YSIsImNhbXJ5IHNvbGFyYSIsMi4yLDE5OTksNCwiYXV0byhsNCkiLCJmIiwyMSwyNywiciIsImNvbXBhY3QiCiIxODgiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIxODkiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuNCwyMDA4LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwzMSwiciIsImNvbXBhY3QiCiIxOTAiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDIuNCwyMDA4LDQsImF1dG8oczUpIiwiZiIsMjIsMzEsInIiLCJjb21wYWN0IgoiMTkxIiwidG95b3RhIiwiY2Ftcnkgc29sYXJhIiwzLDE5OTksNiwiYXV0byhsNCkiLCJmIiwxOCwyNiwiciIsImNvbXBhY3QiCiIxOTIiLCJ0b3lvdGEiLCJjYW1yeSBzb2xhcmEiLDMsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTgsMjYsInIiLCJjb21wYWN0IgoiMTkzIiwidG95b3RhIiwiY2Ftcnkgc29sYXJhIiwzLjMsMjAwOCw2LCJhdXRvKHM1KSIsImYiLDE4LDI3LCJyIiwiY29tcGFjdCIKIjE5NCIsInRveW90YSIsImNvcm9sbGEiLDEuOCwxOTk5LDQsImF1dG8obDMpIiwiZiIsMjQsMzAsInIiLCJjb21wYWN0IgoiMTk1IiwidG95b3RhIiwiY29yb2xsYSIsMS44LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyNCwzMywiciIsImNvbXBhY3QiCiIxOTYiLCJ0b3lvdGEiLCJjb3JvbGxhIiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjYsMzUsInIiLCJjb21wYWN0IgoiMTk3IiwidG95b3RhIiwiY29yb2xsYSIsMS44LDIwMDgsNCwibWFudWFsKG01KSIsImYiLDI4LDM3LCJyIiwiY29tcGFjdCIKIjE5OCIsInRveW90YSIsImNvcm9sbGEiLDEuOCwyMDA4LDQsImF1dG8obDQpIiwiZiIsMjYsMzUsInIiLCJjb21wYWN0IgoiMTk5IiwidG95b3RhIiwibGFuZCBjcnVpc2VyIHdhZ29uIDR3ZCIsNC43LDE5OTksOCwiYXV0byhsNCkiLCI0IiwxMSwxNSwiciIsInN1diIKIjIwMCIsInRveW90YSIsImxhbmQgY3J1aXNlciB3YWdvbiA0d2QiLDUuNywyMDA4LDgsImF1dG8oczYpIiwiNCIsMTMsMTgsInIiLCJzdXYiCiIyMDEiLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsMi43LDE5OTksNCwibWFudWFsKG01KSIsIjQiLDE1LDIwLCJyIiwicGlja3VwIgoiMjAyIiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDIuNywxOTk5LDQsImF1dG8obDQpIiwiNCIsMTYsMjAsInIiLCJwaWNrdXAiCiIyMDMiLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsMi43LDIwMDgsNCwibWFudWFsKG01KSIsIjQiLDE3LDIyLCJyIiwicGlja3VwIgoiMjA0IiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDMuNCwxOTk5LDYsIm1hbnVhbChtNSkiLCI0IiwxNSwxNywiciIsInBpY2t1cCIKIjIwNSIsInRveW90YSIsInRveW90YSB0YWNvbWEgNHdkIiwzLjQsMTk5OSw2LCJhdXRvKGw0KSIsIjQiLDE1LDE5LCJyIiwicGlja3VwIgoiMjA2IiwidG95b3RhIiwidG95b3RhIHRhY29tYSA0d2QiLDQsMjAwOCw2LCJtYW51YWwobTYpIiwiNCIsMTUsMTgsInIiLCJwaWNrdXAiCiIyMDciLCJ0b3lvdGEiLCJ0b3lvdGEgdGFjb21hIDR3ZCIsNCwyMDA4LDYsImF1dG8obDUpIiwiNCIsMTYsMjAsInIiLCJwaWNrdXAiCiIyMDgiLCJ2b2xrc3dhZ2VuIiwiZ3RpIiwyLDE5OTksNCwibWFudWFsKG01KSIsImYiLDIxLDI5LCJyIiwiY29tcGFjdCIKIjIwOSIsInZvbGtzd2FnZW4iLCJndGkiLDIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI2LCJyIiwiY29tcGFjdCIKIjIxMCIsInZvbGtzd2FnZW4iLCJndGkiLDIsMjAwOCw0LCJtYW51YWwobTYpIiwiZiIsMjEsMjksInAiLCJjb21wYWN0IgoiMjExIiwidm9sa3N3YWdlbiIsImd0aSIsMiwyMDA4LDQsImF1dG8oczYpIiwiZiIsMjIsMjksInAiLCJjb21wYWN0IgoiMjEyIiwidm9sa3N3YWdlbiIsImd0aSIsMi44LDE5OTksNiwibWFudWFsKG01KSIsImYiLDE3LDI0LCJyIiwiY29tcGFjdCIKIjIxMyIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMS45LDE5OTksNCwibWFudWFsKG01KSIsImYiLDMzLDQ0LCJkIiwiY29tcGFjdCIKIjIxNCIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMTUiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIsMTk5OSw0LCJhdXRvKGw0KSIsImYiLDE5LDI2LCJyIiwiY29tcGFjdCIKIjIxNiIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMiwyMDA4LDQsImF1dG8oczYpIiwiZiIsMjIsMjksInAiLCJjb21wYWN0IgoiMjE3Iiwidm9sa3N3YWdlbiIsImpldHRhIiwyLDIwMDgsNCwibWFudWFsKG02KSIsImYiLDIxLDI5LCJwIiwiY29tcGFjdCIKIjIxOCIsInZvbGtzd2FnZW4iLCJqZXR0YSIsMi41LDIwMDgsNSwiYXV0byhzNikiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMTkiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIuNSwyMDA4LDUsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsImNvbXBhY3QiCiIyMjAiLCJ2b2xrc3dhZ2VuIiwiamV0dGEiLDIuOCwxOTk5LDYsImF1dG8obDQpIiwiZiIsMTYsMjMsInIiLCJjb21wYWN0IgoiMjIxIiwidm9sa3N3YWdlbiIsImpldHRhIiwyLjgsMTk5OSw2LCJtYW51YWwobTUpIiwiZiIsMTcsMjQsInIiLCJjb21wYWN0IgoiMjIyIiwidm9sa3N3YWdlbiIsIm5ldyBiZWV0bGUiLDEuOSwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwzNSw0NCwiZCIsInN1YmNvbXBhY3QiCiIyMjMiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMS45LDE5OTksNCwiYXV0byhsNCkiLCJmIiwyOSw0MSwiZCIsInN1YmNvbXBhY3QiCiIyMjQiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMiwxOTk5LDQsIm1hbnVhbChtNSkiLCJmIiwyMSwyOSwiciIsInN1YmNvbXBhY3QiCiIyMjUiLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMiwxOTk5LDQsImF1dG8obDQpIiwiZiIsMTksMjYsInIiLCJzdWJjb21wYWN0IgoiMjI2Iiwidm9sa3N3YWdlbiIsIm5ldyBiZWV0bGUiLDIuNSwyMDA4LDUsIm1hbnVhbChtNSkiLCJmIiwyMCwyOCwiciIsInN1YmNvbXBhY3QiCiIyMjciLCJ2b2xrc3dhZ2VuIiwibmV3IGJlZXRsZSIsMi41LDIwMDgsNSwiYXV0byhzNikiLCJmIiwyMCwyOSwiciIsInN1YmNvbXBhY3QiCiIyMjgiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwxLjgsMTk5OSw0LCJtYW51YWwobTUpIiwiZiIsMjEsMjksInAiLCJtaWRzaXplIgoiMjI5Iiwidm9sa3N3YWdlbiIsInBhc3NhdCIsMS44LDE5OTksNCwiYXV0byhsNSkiLCJmIiwxOCwyOSwicCIsIm1pZHNpemUiCiIyMzAiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwyLDIwMDgsNCwiYXV0byhzNikiLCJmIiwxOSwyOCwicCIsIm1pZHNpemUiCiIyMzEiLCJ2b2xrc3dhZ2VuIiwicGFzc2F0IiwyLDIwMDgsNCwibWFudWFsKG02KSIsImYiLDIxLDI5LCJwIiwibWlkc2l6ZSIKIjIzMiIsInZvbGtzd2FnZW4iLCJwYXNzYXQiLDIuOCwxOTk5LDYsImF1dG8obDUpIiwiZiIsMTYsMjYsInAiLCJtaWRzaXplIgoiMjMzIiwidm9sa3N3YWdlbiIsInBhc3NhdCIsMi44LDE5OTksNiwibWFudWFsKG01KSIsImYiLDE4LDI2LCJwIiwibWlkc2l6ZSIKIjIzNCIsInZvbGtzd2FnZW4iLCJwYXNzYXQiLDMuNiwyMDA4LDYsImF1dG8oczYpIiwiZiIsMTcsMjYsInAiLCJtaWRzaXplIgo=
In [17]:
# get the decoded content
print(f.decode())
b'"","manufacturer","model","displ","year","cyl","trans","drv","cty","hwy","fl","class"\n"1","audi","a4",1.8,1999,4,"auto(l5)","f",18,29,"p","compact"\n"2","audi","a4",1.8,1999,4,"manual(m5)","f",21,29,"p","compact"\n"3","audi","a4",2,2008,4,"manual(m6)","f",20,31,"p","compact"\n"4","audi","a4",2,2008,4,"auto(av)","f",21,30,"p","compact"\n"5","audi","a4",2.8,1999,6,"auto(l5)","f",16,26,"p","compact"\n"6","audi","a4",2.8,1999,6,"manual(m5)","f",18,26,"p","compact"\n"7","audi","a4",3.1,2008,6,"auto(av)","f",18,27,"p","compact"\n"8","audi","a4 quattro",1.8,1999,4,"manual(m5)","4",18,26,"p","compact"\n"9","audi","a4 quattro",1.8,1999,4,"auto(l5)","4",16,25,"p","compact"\n"10","audi","a4 quattro",2,2008,4,"manual(m6)","4",20,28,"p","compact"\n"11","audi","a4 quattro",2,2008,4,"auto(s6)","4",19,27,"p","compact"\n"12","audi","a4 quattro",2.8,1999,6,"auto(l5)","4",15,25,"p","compact"\n"13","audi","a4 quattro",2.8,1999,6,"manual(m5)","4",17,25,"p","compact"\n"14","audi","a4 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","compact"\n"15","audi","a4 quattro",3.1,2008,6,"manual(m6)","4",15,25,"p","compact"\n"16","audi","a6 quattro",2.8,1999,6,"auto(l5)","4",15,24,"p","midsize"\n"17","audi","a6 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","midsize"\n"18","audi","a6 quattro",4.2,2008,8,"auto(s6)","4",16,23,"p","midsize"\n"19","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"20","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",11,15,"e","suv"\n"21","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"22","chevrolet","c1500 suburban 2wd",5.7,1999,8,"auto(l4)","r",13,17,"r","suv"\n"23","chevrolet","c1500 suburban 2wd",6,2008,8,"auto(l4)","r",12,17,"r","suv"\n"24","chevrolet","corvette",5.7,1999,8,"manual(m6)","r",16,26,"p","2seater"\n"25","chevrolet","corvette",5.7,1999,8,"auto(l4)","r",15,23,"p","2seater"\n"26","chevrolet","corvette",6.2,2008,8,"manual(m6)","r",16,26,"p","2seater"\n"27","chevrolet","corvette",6.2,2008,8,"auto(s6)","r",15,25,"p","2seater"\n"28","chevrolet","corvette",7,2008,8,"manual(m6)","r",15,24,"p","2seater"\n"29","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",14,19,"r","suv"\n"30","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",11,14,"e","suv"\n"31","chevrolet","k1500 tahoe 4wd",5.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"32","chevrolet","k1500 tahoe 4wd",6.5,1999,8,"auto(l4)","4",14,17,"d","suv"\n"33","chevrolet","malibu",2.4,1999,4,"auto(l4)","f",19,27,"r","midsize"\n"34","chevrolet","malibu",2.4,2008,4,"auto(l4)","f",22,30,"r","midsize"\n"35","chevrolet","malibu",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"36","chevrolet","malibu",3.5,2008,6,"auto(l4)","f",18,29,"r","midsize"\n"37","chevrolet","malibu",3.6,2008,6,"auto(s6)","f",17,26,"r","midsize"\n"38","dodge","caravan 2wd",2.4,1999,4,"auto(l3)","f",18,24,"r","minivan"\n"39","dodge","caravan 2wd",3,1999,6,"auto(l4)","f",17,24,"r","minivan"\n"40","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"41","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"42","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"43","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"44","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",11,17,"e","minivan"\n"45","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,22,"r","minivan"\n"46","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,21,"r","minivan"\n"47","dodge","caravan 2wd",3.8,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"48","dodge","caravan 2wd",4,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"49","dodge","dakota pickup 4wd",3.7,2008,6,"manual(m6)","4",15,19,"r","pickup"\n"50","dodge","dakota pickup 4wd",3.7,2008,6,"auto(l4)","4",14,18,"r","pickup"\n"51","dodge","dakota pickup 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","pickup"\n"52","dodge","dakota pickup 4wd",3.9,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"53","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"54","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"55","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"56","dodge","dakota pickup 4wd",5.2,1999,8,"manual(m5)","4",11,17,"r","pickup"\n"57","dodge","dakota pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"58","dodge","durango 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","suv"\n"59","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"60","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"61","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"62","dodge","durango 4wd",5.2,1999,8,"auto(l4)","4",11,16,"r","suv"\n"63","dodge","durango 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"64","dodge","durango 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","suv"\n"65","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"66","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"67","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"68","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"69","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"70","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",9,12,"e","pickup"\n"71","dodge","ram 1500 pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"72","dodge","ram 1500 pickup 4wd",5.2,1999,8,"manual(m5)","4",11,16,"r","pickup"\n"73","dodge","ram 1500 pickup 4wd",5.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"74","dodge","ram 1500 pickup 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"75","ford","expedition 2wd",4.6,1999,8,"auto(l4)","r",11,17,"r","suv"\n"76","ford","expedition 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"77","ford","expedition 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"78","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"79","ford","explorer 4wd",4,1999,6,"manual(m5)","4",15,19,"r","suv"\n"80","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"81","ford","explorer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"82","ford","explorer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"83","ford","explorer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"84","ford","f150 pickup 4wd",4.2,1999,6,"auto(l4)","4",14,17,"r","pickup"\n"85","ford","f150 pickup 4wd",4.2,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"86","ford","f150 pickup 4wd",4.6,1999,8,"manual(m5)","4",13,16,"r","pickup"\n"87","ford","f150 pickup 4wd",4.6,1999,8,"auto(l4)","4",13,16,"r","pickup"\n"88","ford","f150 pickup 4wd",4.6,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"89","ford","f150 pickup 4wd",5.4,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"90","ford","f150 pickup 4wd",5.4,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"91","ford","mustang",3.8,1999,6,"manual(m5)","r",18,26,"r","subcompact"\n"92","ford","mustang",3.8,1999,6,"auto(l4)","r",18,25,"r","subcompact"\n"93","ford","mustang",4,2008,6,"manual(m5)","r",17,26,"r","subcompact"\n"94","ford","mustang",4,2008,6,"auto(l5)","r",16,24,"r","subcompact"\n"95","ford","mustang",4.6,1999,8,"auto(l4)","r",15,21,"r","subcompact"\n"96","ford","mustang",4.6,1999,8,"manual(m5)","r",15,22,"r","subcompact"\n"97","ford","mustang",4.6,2008,8,"manual(m5)","r",15,23,"r","subcompact"\n"98","ford","mustang",4.6,2008,8,"auto(l5)","r",15,22,"r","subcompact"\n"99","ford","mustang",5.4,2008,8,"manual(m6)","r",14,20,"p","subcompact"\n"100","honda","civic",1.6,1999,4,"manual(m5)","f",28,33,"r","subcompact"\n"101","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"102","honda","civic",1.6,1999,4,"manual(m5)","f",25,32,"r","subcompact"\n"103","honda","civic",1.6,1999,4,"manual(m5)","f",23,29,"p","subcompact"\n"104","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"105","honda","civic",1.8,2008,4,"manual(m5)","f",26,34,"r","subcompact"\n"106","honda","civic",1.8,2008,4,"auto(l5)","f",25,36,"r","subcompact"\n"107","honda","civic",1.8,2008,4,"auto(l5)","f",24,36,"c","subcompact"\n"108","honda","civic",2,2008,4,"manual(m6)","f",21,29,"p","subcompact"\n"109","hyundai","sonata",2.4,1999,4,"auto(l4)","f",18,26,"r","midsize"\n"110","hyundai","sonata",2.4,1999,4,"manual(m5)","f",18,27,"r","midsize"\n"111","hyundai","sonata",2.4,2008,4,"auto(l4)","f",21,30,"r","midsize"\n"112","hyundai","sonata",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"113","hyundai","sonata",2.5,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"114","hyundai","sonata",2.5,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"115","hyundai","sonata",3.3,2008,6,"auto(l5)","f",19,28,"r","midsize"\n"116","hyundai","tiburon",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"117","hyundai","tiburon",2,1999,4,"manual(m5)","f",19,29,"r","subcompact"\n"118","hyundai","tiburon",2,2008,4,"manual(m5)","f",20,28,"r","subcompact"\n"119","hyundai","tiburon",2,2008,4,"auto(l4)","f",20,27,"r","subcompact"\n"120","hyundai","tiburon",2.7,2008,6,"auto(l4)","f",17,24,"r","subcompact"\n"121","hyundai","tiburon",2.7,2008,6,"manual(m6)","f",16,24,"r","subcompact"\n"122","hyundai","tiburon",2.7,2008,6,"manual(m5)","f",17,24,"r","subcompact"\n"123","jeep","grand cherokee 4wd",3,2008,6,"auto(l5)","4",17,22,"d","suv"\n"124","jeep","grand cherokee 4wd",3.7,2008,6,"auto(l5)","4",15,19,"r","suv"\n"125","jeep","grand cherokee 4wd",4,1999,6,"auto(l4)","4",15,20,"r","suv"\n"126","jeep","grand cherokee 4wd",4.7,1999,8,"auto(l4)","4",14,17,"r","suv"\n"127","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"128","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","suv"\n"129","jeep","grand cherokee 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"130","jeep","grand cherokee 4wd",6.1,2008,8,"auto(l5)","4",11,14,"p","suv"\n"131","land rover","range rover",4,1999,8,"auto(l4)","4",11,15,"p","suv"\n"132","land rover","range rover",4.2,2008,8,"auto(s6)","4",12,18,"r","suv"\n"133","land rover","range rover",4.4,2008,8,"auto(s6)","4",12,18,"r","suv"\n"134","land rover","range rover",4.6,1999,8,"auto(l4)","4",11,15,"p","suv"\n"135","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"136","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,16,"p","suv"\n"137","lincoln","navigator 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"138","mercury","mountaineer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"139","mercury","mountaineer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"140","mercury","mountaineer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"141","mercury","mountaineer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"142","nissan","altima",2.4,1999,4,"manual(m5)","f",21,29,"r","compact"\n"143","nissan","altima",2.4,1999,4,"auto(l4)","f",19,27,"r","compact"\n"144","nissan","altima",2.5,2008,4,"auto(av)","f",23,31,"r","midsize"\n"145","nissan","altima",2.5,2008,4,"manual(m6)","f",23,32,"r","midsize"\n"146","nissan","altima",3.5,2008,6,"manual(m6)","f",19,27,"p","midsize"\n"147","nissan","altima",3.5,2008,6,"auto(av)","f",19,26,"p","midsize"\n"148","nissan","maxima",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"149","nissan","maxima",3,1999,6,"manual(m5)","f",19,25,"r","midsize"\n"150","nissan","maxima",3.5,2008,6,"auto(av)","f",19,25,"p","midsize"\n"151","nissan","pathfinder 4wd",3.3,1999,6,"auto(l4)","4",14,17,"r","suv"\n"152","nissan","pathfinder 4wd",3.3,1999,6,"manual(m5)","4",15,17,"r","suv"\n"153","nissan","pathfinder 4wd",4,2008,6,"auto(l5)","4",14,20,"p","suv"\n"154","nissan","pathfinder 4wd",5.6,2008,8,"auto(s5)","4",12,18,"p","suv"\n"155","pontiac","grand prix",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"156","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",16,26,"p","midsize"\n"157","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",17,27,"r","midsize"\n"158","pontiac","grand prix",3.8,2008,6,"auto(l4)","f",18,28,"r","midsize"\n"159","pontiac","grand prix",5.3,2008,8,"auto(s4)","f",16,25,"p","midsize"\n"160","subaru","forester awd",2.5,1999,4,"manual(m5)","4",18,25,"r","suv"\n"161","subaru","forester awd",2.5,1999,4,"auto(l4)","4",18,24,"r","suv"\n"162","subaru","forester awd",2.5,2008,4,"manual(m5)","4",20,27,"r","suv"\n"163","subaru","forester awd",2.5,2008,4,"manual(m5)","4",19,25,"p","suv"\n"164","subaru","forester awd",2.5,2008,4,"auto(l4)","4",20,26,"r","suv"\n"165","subaru","forester awd",2.5,2008,4,"auto(l4)","4",18,23,"p","suv"\n"166","subaru","impreza awd",2.2,1999,4,"auto(l4)","4",21,26,"r","subcompact"\n"167","subaru","impreza awd",2.2,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"168","subaru","impreza awd",2.5,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"169","subaru","impreza awd",2.5,1999,4,"auto(l4)","4",19,26,"r","subcompact"\n"170","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,25,"p","compact"\n"171","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,27,"r","compact"\n"172","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",19,25,"p","compact"\n"173","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",20,27,"r","compact"\n"174","toyota","4runner 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","suv"\n"175","toyota","4runner 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","suv"\n"176","toyota","4runner 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","suv"\n"177","toyota","4runner 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","suv"\n"178","toyota","4runner 4wd",4,2008,6,"auto(l5)","4",16,20,"r","suv"\n"179","toyota","4runner 4wd",4.7,2008,8,"auto(l5)","4",14,17,"r","suv"\n"180","toyota","camry",2.2,1999,4,"manual(m5)","f",21,29,"r","midsize"\n"181","toyota","camry",2.2,1999,4,"auto(l4)","f",21,27,"r","midsize"\n"182","toyota","camry",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"183","toyota","camry",2.4,2008,4,"auto(l5)","f",21,31,"r","midsize"\n"184","toyota","camry",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"185","toyota","camry",3,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"186","toyota","camry",3.5,2008,6,"auto(s6)","f",19,28,"r","midsize"\n"187","toyota","camry solara",2.2,1999,4,"auto(l4)","f",21,27,"r","compact"\n"188","toyota","camry solara",2.2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"189","toyota","camry solara",2.4,2008,4,"manual(m5)","f",21,31,"r","compact"\n"190","toyota","camry solara",2.4,2008,4,"auto(s5)","f",22,31,"r","compact"\n"191","toyota","camry solara",3,1999,6,"auto(l4)","f",18,26,"r","compact"\n"192","toyota","camry solara",3,1999,6,"manual(m5)","f",18,26,"r","compact"\n"193","toyota","camry solara",3.3,2008,6,"auto(s5)","f",18,27,"r","compact"\n"194","toyota","corolla",1.8,1999,4,"auto(l3)","f",24,30,"r","compact"\n"195","toyota","corolla",1.8,1999,4,"auto(l4)","f",24,33,"r","compact"\n"196","toyota","corolla",1.8,1999,4,"manual(m5)","f",26,35,"r","compact"\n"197","toyota","corolla",1.8,2008,4,"manual(m5)","f",28,37,"r","compact"\n"198","toyota","corolla",1.8,2008,4,"auto(l4)","f",26,35,"r","compact"\n"199","toyota","land cruiser wagon 4wd",4.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"200","toyota","land cruiser wagon 4wd",5.7,2008,8,"auto(s6)","4",13,18,"r","suv"\n"201","toyota","toyota tacoma 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","pickup"\n"202","toyota","toyota tacoma 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","pickup"\n"203","toyota","toyota tacoma 4wd",2.7,2008,4,"manual(m5)","4",17,22,"r","pickup"\n"204","toyota","toyota tacoma 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","pickup"\n"205","toyota","toyota tacoma 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","pickup"\n"206","toyota","toyota tacoma 4wd",4,2008,6,"manual(m6)","4",15,18,"r","pickup"\n"207","toyota","toyota tacoma 4wd",4,2008,6,"auto(l5)","4",16,20,"r","pickup"\n"208","volkswagen","gti",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"209","volkswagen","gti",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"210","volkswagen","gti",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"211","volkswagen","gti",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"212","volkswagen","gti",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"213","volkswagen","jetta",1.9,1999,4,"manual(m5)","f",33,44,"d","compact"\n"214","volkswagen","jetta",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"215","volkswagen","jetta",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"216","volkswagen","jetta",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"217","volkswagen","jetta",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"218","volkswagen","jetta",2.5,2008,5,"auto(s6)","f",21,29,"r","compact"\n"219","volkswagen","jetta",2.5,2008,5,"manual(m5)","f",21,29,"r","compact"\n"220","volkswagen","jetta",2.8,1999,6,"auto(l4)","f",16,23,"r","compact"\n"221","volkswagen","jetta",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"222","volkswagen","new beetle",1.9,1999,4,"manual(m5)","f",35,44,"d","subcompact"\n"223","volkswagen","new beetle",1.9,1999,4,"auto(l4)","f",29,41,"d","subcompact"\n"224","volkswagen","new beetle",2,1999,4,"manual(m5)","f",21,29,"r","subcompact"\n"225","volkswagen","new beetle",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"226","volkswagen","new beetle",2.5,2008,5,"manual(m5)","f",20,28,"r","subcompact"\n"227","volkswagen","new beetle",2.5,2008,5,"auto(s6)","f",20,29,"r","subcompact"\n"228","volkswagen","passat",1.8,1999,4,"manual(m5)","f",21,29,"p","midsize"\n"229","volkswagen","passat",1.8,1999,4,"auto(l5)","f",18,29,"p","midsize"\n"230","volkswagen","passat",2,2008,4,"auto(s6)","f",19,28,"p","midsize"\n"231","volkswagen","passat",2,2008,4,"manual(m6)","f",21,29,"p","midsize"\n"232","volkswagen","passat",2.8,1999,6,"auto(l5)","f",16,26,"p","midsize"\n"233","volkswagen","passat",2.8,1999,6,"manual(m5)","f",18,26,"p","midsize"\n"234","volkswagen","passat",3.6,2008,6,"auto(s6)","f",17,26,"p","midsize"\n'


Get a raw file:

In [18]:
raw_content = project.files.raw(file_path='mpg.csv', ref='master')
print(raw_content)
b'"","manufacturer","model","displ","year","cyl","trans","drv","cty","hwy","fl","class"\n"1","audi","a4",1.8,1999,4,"auto(l5)","f",18,29,"p","compact"\n"2","audi","a4",1.8,1999,4,"manual(m5)","f",21,29,"p","compact"\n"3","audi","a4",2,2008,4,"manual(m6)","f",20,31,"p","compact"\n"4","audi","a4",2,2008,4,"auto(av)","f",21,30,"p","compact"\n"5","audi","a4",2.8,1999,6,"auto(l5)","f",16,26,"p","compact"\n"6","audi","a4",2.8,1999,6,"manual(m5)","f",18,26,"p","compact"\n"7","audi","a4",3.1,2008,6,"auto(av)","f",18,27,"p","compact"\n"8","audi","a4 quattro",1.8,1999,4,"manual(m5)","4",18,26,"p","compact"\n"9","audi","a4 quattro",1.8,1999,4,"auto(l5)","4",16,25,"p","compact"\n"10","audi","a4 quattro",2,2008,4,"manual(m6)","4",20,28,"p","compact"\n"11","audi","a4 quattro",2,2008,4,"auto(s6)","4",19,27,"p","compact"\n"12","audi","a4 quattro",2.8,1999,6,"auto(l5)","4",15,25,"p","compact"\n"13","audi","a4 quattro",2.8,1999,6,"manual(m5)","4",17,25,"p","compact"\n"14","audi","a4 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","compact"\n"15","audi","a4 quattro",3.1,2008,6,"manual(m6)","4",15,25,"p","compact"\n"16","audi","a6 quattro",2.8,1999,6,"auto(l5)","4",15,24,"p","midsize"\n"17","audi","a6 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","midsize"\n"18","audi","a6 quattro",4.2,2008,8,"auto(s6)","4",16,23,"p","midsize"\n"19","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"20","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",11,15,"e","suv"\n"21","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"\n"22","chevrolet","c1500 suburban 2wd",5.7,1999,8,"auto(l4)","r",13,17,"r","suv"\n"23","chevrolet","c1500 suburban 2wd",6,2008,8,"auto(l4)","r",12,17,"r","suv"\n"24","chevrolet","corvette",5.7,1999,8,"manual(m6)","r",16,26,"p","2seater"\n"25","chevrolet","corvette",5.7,1999,8,"auto(l4)","r",15,23,"p","2seater"\n"26","chevrolet","corvette",6.2,2008,8,"manual(m6)","r",16,26,"p","2seater"\n"27","chevrolet","corvette",6.2,2008,8,"auto(s6)","r",15,25,"p","2seater"\n"28","chevrolet","corvette",7,2008,8,"manual(m6)","r",15,24,"p","2seater"\n"29","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",14,19,"r","suv"\n"30","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",11,14,"e","suv"\n"31","chevrolet","k1500 tahoe 4wd",5.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"32","chevrolet","k1500 tahoe 4wd",6.5,1999,8,"auto(l4)","4",14,17,"d","suv"\n"33","chevrolet","malibu",2.4,1999,4,"auto(l4)","f",19,27,"r","midsize"\n"34","chevrolet","malibu",2.4,2008,4,"auto(l4)","f",22,30,"r","midsize"\n"35","chevrolet","malibu",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"36","chevrolet","malibu",3.5,2008,6,"auto(l4)","f",18,29,"r","midsize"\n"37","chevrolet","malibu",3.6,2008,6,"auto(s6)","f",17,26,"r","midsize"\n"38","dodge","caravan 2wd",2.4,1999,4,"auto(l3)","f",18,24,"r","minivan"\n"39","dodge","caravan 2wd",3,1999,6,"auto(l4)","f",17,24,"r","minivan"\n"40","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"41","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"\n"42","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"43","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"\n"44","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",11,17,"e","minivan"\n"45","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,22,"r","minivan"\n"46","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,21,"r","minivan"\n"47","dodge","caravan 2wd",3.8,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"48","dodge","caravan 2wd",4,2008,6,"auto(l6)","f",16,23,"r","minivan"\n"49","dodge","dakota pickup 4wd",3.7,2008,6,"manual(m6)","4",15,19,"r","pickup"\n"50","dodge","dakota pickup 4wd",3.7,2008,6,"auto(l4)","4",14,18,"r","pickup"\n"51","dodge","dakota pickup 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","pickup"\n"52","dodge","dakota pickup 4wd",3.9,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"53","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"54","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"\n"55","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"56","dodge","dakota pickup 4wd",5.2,1999,8,"manual(m5)","4",11,17,"r","pickup"\n"57","dodge","dakota pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"58","dodge","durango 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","suv"\n"59","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"60","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"61","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"\n"62","dodge","durango 4wd",5.2,1999,8,"auto(l4)","4",11,16,"r","suv"\n"63","dodge","durango 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"64","dodge","durango 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","suv"\n"65","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"66","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"\n"67","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"68","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"69","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"\n"70","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",9,12,"e","pickup"\n"71","dodge","ram 1500 pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"72","dodge","ram 1500 pickup 4wd",5.2,1999,8,"manual(m5)","4",11,16,"r","pickup"\n"73","dodge","ram 1500 pickup 4wd",5.7,2008,8,"auto(l5)","4",13,17,"r","pickup"\n"74","dodge","ram 1500 pickup 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"75","ford","expedition 2wd",4.6,1999,8,"auto(l4)","r",11,17,"r","suv"\n"76","ford","expedition 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"77","ford","expedition 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"78","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"79","ford","explorer 4wd",4,1999,6,"manual(m5)","4",15,19,"r","suv"\n"80","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"81","ford","explorer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"82","ford","explorer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"83","ford","explorer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"84","ford","f150 pickup 4wd",4.2,1999,6,"auto(l4)","4",14,17,"r","pickup"\n"85","ford","f150 pickup 4wd",4.2,1999,6,"manual(m5)","4",14,17,"r","pickup"\n"86","ford","f150 pickup 4wd",4.6,1999,8,"manual(m5)","4",13,16,"r","pickup"\n"87","ford","f150 pickup 4wd",4.6,1999,8,"auto(l4)","4",13,16,"r","pickup"\n"88","ford","f150 pickup 4wd",4.6,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"89","ford","f150 pickup 4wd",5.4,1999,8,"auto(l4)","4",11,15,"r","pickup"\n"90","ford","f150 pickup 4wd",5.4,2008,8,"auto(l4)","4",13,17,"r","pickup"\n"91","ford","mustang",3.8,1999,6,"manual(m5)","r",18,26,"r","subcompact"\n"92","ford","mustang",3.8,1999,6,"auto(l4)","r",18,25,"r","subcompact"\n"93","ford","mustang",4,2008,6,"manual(m5)","r",17,26,"r","subcompact"\n"94","ford","mustang",4,2008,6,"auto(l5)","r",16,24,"r","subcompact"\n"95","ford","mustang",4.6,1999,8,"auto(l4)","r",15,21,"r","subcompact"\n"96","ford","mustang",4.6,1999,8,"manual(m5)","r",15,22,"r","subcompact"\n"97","ford","mustang",4.6,2008,8,"manual(m5)","r",15,23,"r","subcompact"\n"98","ford","mustang",4.6,2008,8,"auto(l5)","r",15,22,"r","subcompact"\n"99","ford","mustang",5.4,2008,8,"manual(m6)","r",14,20,"p","subcompact"\n"100","honda","civic",1.6,1999,4,"manual(m5)","f",28,33,"r","subcompact"\n"101","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"102","honda","civic",1.6,1999,4,"manual(m5)","f",25,32,"r","subcompact"\n"103","honda","civic",1.6,1999,4,"manual(m5)","f",23,29,"p","subcompact"\n"104","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"\n"105","honda","civic",1.8,2008,4,"manual(m5)","f",26,34,"r","subcompact"\n"106","honda","civic",1.8,2008,4,"auto(l5)","f",25,36,"r","subcompact"\n"107","honda","civic",1.8,2008,4,"auto(l5)","f",24,36,"c","subcompact"\n"108","honda","civic",2,2008,4,"manual(m6)","f",21,29,"p","subcompact"\n"109","hyundai","sonata",2.4,1999,4,"auto(l4)","f",18,26,"r","midsize"\n"110","hyundai","sonata",2.4,1999,4,"manual(m5)","f",18,27,"r","midsize"\n"111","hyundai","sonata",2.4,2008,4,"auto(l4)","f",21,30,"r","midsize"\n"112","hyundai","sonata",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"113","hyundai","sonata",2.5,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"114","hyundai","sonata",2.5,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"115","hyundai","sonata",3.3,2008,6,"auto(l5)","f",19,28,"r","midsize"\n"116","hyundai","tiburon",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"117","hyundai","tiburon",2,1999,4,"manual(m5)","f",19,29,"r","subcompact"\n"118","hyundai","tiburon",2,2008,4,"manual(m5)","f",20,28,"r","subcompact"\n"119","hyundai","tiburon",2,2008,4,"auto(l4)","f",20,27,"r","subcompact"\n"120","hyundai","tiburon",2.7,2008,6,"auto(l4)","f",17,24,"r","subcompact"\n"121","hyundai","tiburon",2.7,2008,6,"manual(m6)","f",16,24,"r","subcompact"\n"122","hyundai","tiburon",2.7,2008,6,"manual(m5)","f",17,24,"r","subcompact"\n"123","jeep","grand cherokee 4wd",3,2008,6,"auto(l5)","4",17,22,"d","suv"\n"124","jeep","grand cherokee 4wd",3.7,2008,6,"auto(l5)","4",15,19,"r","suv"\n"125","jeep","grand cherokee 4wd",4,1999,6,"auto(l4)","4",15,20,"r","suv"\n"126","jeep","grand cherokee 4wd",4.7,1999,8,"auto(l4)","4",14,17,"r","suv"\n"127","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"\n"128","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","suv"\n"129","jeep","grand cherokee 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"\n"130","jeep","grand cherokee 4wd",6.1,2008,8,"auto(l5)","4",11,14,"p","suv"\n"131","land rover","range rover",4,1999,8,"auto(l4)","4",11,15,"p","suv"\n"132","land rover","range rover",4.2,2008,8,"auto(s6)","4",12,18,"r","suv"\n"133","land rover","range rover",4.4,2008,8,"auto(s6)","4",12,18,"r","suv"\n"134","land rover","range rover",4.6,1999,8,"auto(l4)","4",11,15,"p","suv"\n"135","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"\n"136","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,16,"p","suv"\n"137","lincoln","navigator 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"\n"138","mercury","mountaineer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"\n"139","mercury","mountaineer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"\n"140","mercury","mountaineer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"\n"141","mercury","mountaineer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"\n"142","nissan","altima",2.4,1999,4,"manual(m5)","f",21,29,"r","compact"\n"143","nissan","altima",2.4,1999,4,"auto(l4)","f",19,27,"r","compact"\n"144","nissan","altima",2.5,2008,4,"auto(av)","f",23,31,"r","midsize"\n"145","nissan","altima",2.5,2008,4,"manual(m6)","f",23,32,"r","midsize"\n"146","nissan","altima",3.5,2008,6,"manual(m6)","f",19,27,"p","midsize"\n"147","nissan","altima",3.5,2008,6,"auto(av)","f",19,26,"p","midsize"\n"148","nissan","maxima",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"149","nissan","maxima",3,1999,6,"manual(m5)","f",19,25,"r","midsize"\n"150","nissan","maxima",3.5,2008,6,"auto(av)","f",19,25,"p","midsize"\n"151","nissan","pathfinder 4wd",3.3,1999,6,"auto(l4)","4",14,17,"r","suv"\n"152","nissan","pathfinder 4wd",3.3,1999,6,"manual(m5)","4",15,17,"r","suv"\n"153","nissan","pathfinder 4wd",4,2008,6,"auto(l5)","4",14,20,"p","suv"\n"154","nissan","pathfinder 4wd",5.6,2008,8,"auto(s5)","4",12,18,"p","suv"\n"155","pontiac","grand prix",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"156","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",16,26,"p","midsize"\n"157","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",17,27,"r","midsize"\n"158","pontiac","grand prix",3.8,2008,6,"auto(l4)","f",18,28,"r","midsize"\n"159","pontiac","grand prix",5.3,2008,8,"auto(s4)","f",16,25,"p","midsize"\n"160","subaru","forester awd",2.5,1999,4,"manual(m5)","4",18,25,"r","suv"\n"161","subaru","forester awd",2.5,1999,4,"auto(l4)","4",18,24,"r","suv"\n"162","subaru","forester awd",2.5,2008,4,"manual(m5)","4",20,27,"r","suv"\n"163","subaru","forester awd",2.5,2008,4,"manual(m5)","4",19,25,"p","suv"\n"164","subaru","forester awd",2.5,2008,4,"auto(l4)","4",20,26,"r","suv"\n"165","subaru","forester awd",2.5,2008,4,"auto(l4)","4",18,23,"p","suv"\n"166","subaru","impreza awd",2.2,1999,4,"auto(l4)","4",21,26,"r","subcompact"\n"167","subaru","impreza awd",2.2,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"168","subaru","impreza awd",2.5,1999,4,"manual(m5)","4",19,26,"r","subcompact"\n"169","subaru","impreza awd",2.5,1999,4,"auto(l4)","4",19,26,"r","subcompact"\n"170","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,25,"p","compact"\n"171","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,27,"r","compact"\n"172","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",19,25,"p","compact"\n"173","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",20,27,"r","compact"\n"174","toyota","4runner 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","suv"\n"175","toyota","4runner 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","suv"\n"176","toyota","4runner 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","suv"\n"177","toyota","4runner 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","suv"\n"178","toyota","4runner 4wd",4,2008,6,"auto(l5)","4",16,20,"r","suv"\n"179","toyota","4runner 4wd",4.7,2008,8,"auto(l5)","4",14,17,"r","suv"\n"180","toyota","camry",2.2,1999,4,"manual(m5)","f",21,29,"r","midsize"\n"181","toyota","camry",2.2,1999,4,"auto(l4)","f",21,27,"r","midsize"\n"182","toyota","camry",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"\n"183","toyota","camry",2.4,2008,4,"auto(l5)","f",21,31,"r","midsize"\n"184","toyota","camry",3,1999,6,"auto(l4)","f",18,26,"r","midsize"\n"185","toyota","camry",3,1999,6,"manual(m5)","f",18,26,"r","midsize"\n"186","toyota","camry",3.5,2008,6,"auto(s6)","f",19,28,"r","midsize"\n"187","toyota","camry solara",2.2,1999,4,"auto(l4)","f",21,27,"r","compact"\n"188","toyota","camry solara",2.2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"189","toyota","camry solara",2.4,2008,4,"manual(m5)","f",21,31,"r","compact"\n"190","toyota","camry solara",2.4,2008,4,"auto(s5)","f",22,31,"r","compact"\n"191","toyota","camry solara",3,1999,6,"auto(l4)","f",18,26,"r","compact"\n"192","toyota","camry solara",3,1999,6,"manual(m5)","f",18,26,"r","compact"\n"193","toyota","camry solara",3.3,2008,6,"auto(s5)","f",18,27,"r","compact"\n"194","toyota","corolla",1.8,1999,4,"auto(l3)","f",24,30,"r","compact"\n"195","toyota","corolla",1.8,1999,4,"auto(l4)","f",24,33,"r","compact"\n"196","toyota","corolla",1.8,1999,4,"manual(m5)","f",26,35,"r","compact"\n"197","toyota","corolla",1.8,2008,4,"manual(m5)","f",28,37,"r","compact"\n"198","toyota","corolla",1.8,2008,4,"auto(l4)","f",26,35,"r","compact"\n"199","toyota","land cruiser wagon 4wd",4.7,1999,8,"auto(l4)","4",11,15,"r","suv"\n"200","toyota","land cruiser wagon 4wd",5.7,2008,8,"auto(s6)","4",13,18,"r","suv"\n"201","toyota","toyota tacoma 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","pickup"\n"202","toyota","toyota tacoma 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","pickup"\n"203","toyota","toyota tacoma 4wd",2.7,2008,4,"manual(m5)","4",17,22,"r","pickup"\n"204","toyota","toyota tacoma 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","pickup"\n"205","toyota","toyota tacoma 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","pickup"\n"206","toyota","toyota tacoma 4wd",4,2008,6,"manual(m6)","4",15,18,"r","pickup"\n"207","toyota","toyota tacoma 4wd",4,2008,6,"auto(l5)","4",16,20,"r","pickup"\n"208","volkswagen","gti",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"209","volkswagen","gti",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"210","volkswagen","gti",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"211","volkswagen","gti",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"212","volkswagen","gti",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"213","volkswagen","jetta",1.9,1999,4,"manual(m5)","f",33,44,"d","compact"\n"214","volkswagen","jetta",2,1999,4,"manual(m5)","f",21,29,"r","compact"\n"215","volkswagen","jetta",2,1999,4,"auto(l4)","f",19,26,"r","compact"\n"216","volkswagen","jetta",2,2008,4,"auto(s6)","f",22,29,"p","compact"\n"217","volkswagen","jetta",2,2008,4,"manual(m6)","f",21,29,"p","compact"\n"218","volkswagen","jetta",2.5,2008,5,"auto(s6)","f",21,29,"r","compact"\n"219","volkswagen","jetta",2.5,2008,5,"manual(m5)","f",21,29,"r","compact"\n"220","volkswagen","jetta",2.8,1999,6,"auto(l4)","f",16,23,"r","compact"\n"221","volkswagen","jetta",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"\n"222","volkswagen","new beetle",1.9,1999,4,"manual(m5)","f",35,44,"d","subcompact"\n"223","volkswagen","new beetle",1.9,1999,4,"auto(l4)","f",29,41,"d","subcompact"\n"224","volkswagen","new beetle",2,1999,4,"manual(m5)","f",21,29,"r","subcompact"\n"225","volkswagen","new beetle",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"\n"226","volkswagen","new beetle",2.5,2008,5,"manual(m5)","f",20,28,"r","subcompact"\n"227","volkswagen","new beetle",2.5,2008,5,"auto(s6)","f",20,29,"r","subcompact"\n"228","volkswagen","passat",1.8,1999,4,"manual(m5)","f",21,29,"p","midsize"\n"229","volkswagen","passat",1.8,1999,4,"auto(l5)","f",18,29,"p","midsize"\n"230","volkswagen","passat",2,2008,4,"auto(s6)","f",19,28,"p","midsize"\n"231","volkswagen","passat",2,2008,4,"manual(m6)","f",21,29,"p","midsize"\n"232","volkswagen","passat",2.8,1999,6,"auto(l5)","f",16,26,"p","midsize"\n"233","volkswagen","passat",2.8,1999,6,"manual(m5)","f",18,26,"p","midsize"\n"234","volkswagen","passat",3.6,2008,6,"auto(s6)","f",17,26,"p","midsize"\n'


Extract decoded file.

In [19]:
print(raw_content.decode())
"","manufacturer","model","displ","year","cyl","trans","drv","cty","hwy","fl","class"
"1","audi","a4",1.8,1999,4,"auto(l5)","f",18,29,"p","compact"
"2","audi","a4",1.8,1999,4,"manual(m5)","f",21,29,"p","compact"
"3","audi","a4",2,2008,4,"manual(m6)","f",20,31,"p","compact"
"4","audi","a4",2,2008,4,"auto(av)","f",21,30,"p","compact"
"5","audi","a4",2.8,1999,6,"auto(l5)","f",16,26,"p","compact"
"6","audi","a4",2.8,1999,6,"manual(m5)","f",18,26,"p","compact"
"7","audi","a4",3.1,2008,6,"auto(av)","f",18,27,"p","compact"
"8","audi","a4 quattro",1.8,1999,4,"manual(m5)","4",18,26,"p","compact"
"9","audi","a4 quattro",1.8,1999,4,"auto(l5)","4",16,25,"p","compact"
"10","audi","a4 quattro",2,2008,4,"manual(m6)","4",20,28,"p","compact"
"11","audi","a4 quattro",2,2008,4,"auto(s6)","4",19,27,"p","compact"
"12","audi","a4 quattro",2.8,1999,6,"auto(l5)","4",15,25,"p","compact"
"13","audi","a4 quattro",2.8,1999,6,"manual(m5)","4",17,25,"p","compact"
"14","audi","a4 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","compact"
"15","audi","a4 quattro",3.1,2008,6,"manual(m6)","4",15,25,"p","compact"
"16","audi","a6 quattro",2.8,1999,6,"auto(l5)","4",15,24,"p","midsize"
"17","audi","a6 quattro",3.1,2008,6,"auto(s6)","4",17,25,"p","midsize"
"18","audi","a6 quattro",4.2,2008,8,"auto(s6)","4",16,23,"p","midsize"
"19","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"
"20","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",11,15,"e","suv"
"21","chevrolet","c1500 suburban 2wd",5.3,2008,8,"auto(l4)","r",14,20,"r","suv"
"22","chevrolet","c1500 suburban 2wd",5.7,1999,8,"auto(l4)","r",13,17,"r","suv"
"23","chevrolet","c1500 suburban 2wd",6,2008,8,"auto(l4)","r",12,17,"r","suv"
"24","chevrolet","corvette",5.7,1999,8,"manual(m6)","r",16,26,"p","2seater"
"25","chevrolet","corvette",5.7,1999,8,"auto(l4)","r",15,23,"p","2seater"
"26","chevrolet","corvette",6.2,2008,8,"manual(m6)","r",16,26,"p","2seater"
"27","chevrolet","corvette",6.2,2008,8,"auto(s6)","r",15,25,"p","2seater"
"28","chevrolet","corvette",7,2008,8,"manual(m6)","r",15,24,"p","2seater"
"29","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",14,19,"r","suv"
"30","chevrolet","k1500 tahoe 4wd",5.3,2008,8,"auto(l4)","4",11,14,"e","suv"
"31","chevrolet","k1500 tahoe 4wd",5.7,1999,8,"auto(l4)","4",11,15,"r","suv"
"32","chevrolet","k1500 tahoe 4wd",6.5,1999,8,"auto(l4)","4",14,17,"d","suv"
"33","chevrolet","malibu",2.4,1999,4,"auto(l4)","f",19,27,"r","midsize"
"34","chevrolet","malibu",2.4,2008,4,"auto(l4)","f",22,30,"r","midsize"
"35","chevrolet","malibu",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"
"36","chevrolet","malibu",3.5,2008,6,"auto(l4)","f",18,29,"r","midsize"
"37","chevrolet","malibu",3.6,2008,6,"auto(s6)","f",17,26,"r","midsize"
"38","dodge","caravan 2wd",2.4,1999,4,"auto(l3)","f",18,24,"r","minivan"
"39","dodge","caravan 2wd",3,1999,6,"auto(l4)","f",17,24,"r","minivan"
"40","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"
"41","dodge","caravan 2wd",3.3,1999,6,"auto(l4)","f",16,22,"r","minivan"
"42","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"
"43","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",17,24,"r","minivan"
"44","dodge","caravan 2wd",3.3,2008,6,"auto(l4)","f",11,17,"e","minivan"
"45","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,22,"r","minivan"
"46","dodge","caravan 2wd",3.8,1999,6,"auto(l4)","f",15,21,"r","minivan"
"47","dodge","caravan 2wd",3.8,2008,6,"auto(l6)","f",16,23,"r","minivan"
"48","dodge","caravan 2wd",4,2008,6,"auto(l6)","f",16,23,"r","minivan"
"49","dodge","dakota pickup 4wd",3.7,2008,6,"manual(m6)","4",15,19,"r","pickup"
"50","dodge","dakota pickup 4wd",3.7,2008,6,"auto(l4)","4",14,18,"r","pickup"
"51","dodge","dakota pickup 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","pickup"
"52","dodge","dakota pickup 4wd",3.9,1999,6,"manual(m5)","4",14,17,"r","pickup"
"53","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"
"54","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","pickup"
"55","dodge","dakota pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"
"56","dodge","dakota pickup 4wd",5.2,1999,8,"manual(m5)","4",11,17,"r","pickup"
"57","dodge","dakota pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"
"58","dodge","durango 4wd",3.9,1999,6,"auto(l4)","4",13,17,"r","suv"
"59","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"
"60","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"
"61","dodge","durango 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","suv"
"62","dodge","durango 4wd",5.2,1999,8,"auto(l4)","4",11,16,"r","suv"
"63","dodge","durango 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"
"64","dodge","durango 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","suv"
"65","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"
"66","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","pickup"
"67","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"
"68","dodge","ram 1500 pickup 4wd",4.7,2008,8,"auto(l5)","4",13,17,"r","pickup"
"69","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",12,16,"r","pickup"
"70","dodge","ram 1500 pickup 4wd",4.7,2008,8,"manual(m6)","4",9,12,"e","pickup"
"71","dodge","ram 1500 pickup 4wd",5.2,1999,8,"auto(l4)","4",11,15,"r","pickup"
"72","dodge","ram 1500 pickup 4wd",5.2,1999,8,"manual(m5)","4",11,16,"r","pickup"
"73","dodge","ram 1500 pickup 4wd",5.7,2008,8,"auto(l5)","4",13,17,"r","pickup"
"74","dodge","ram 1500 pickup 4wd",5.9,1999,8,"auto(l4)","4",11,15,"r","pickup"
"75","ford","expedition 2wd",4.6,1999,8,"auto(l4)","r",11,17,"r","suv"
"76","ford","expedition 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"
"77","ford","expedition 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"
"78","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"
"79","ford","explorer 4wd",4,1999,6,"manual(m5)","4",15,19,"r","suv"
"80","ford","explorer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"
"81","ford","explorer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"
"82","ford","explorer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"
"83","ford","explorer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"
"84","ford","f150 pickup 4wd",4.2,1999,6,"auto(l4)","4",14,17,"r","pickup"
"85","ford","f150 pickup 4wd",4.2,1999,6,"manual(m5)","4",14,17,"r","pickup"
"86","ford","f150 pickup 4wd",4.6,1999,8,"manual(m5)","4",13,16,"r","pickup"
"87","ford","f150 pickup 4wd",4.6,1999,8,"auto(l4)","4",13,16,"r","pickup"
"88","ford","f150 pickup 4wd",4.6,2008,8,"auto(l4)","4",13,17,"r","pickup"
"89","ford","f150 pickup 4wd",5.4,1999,8,"auto(l4)","4",11,15,"r","pickup"
"90","ford","f150 pickup 4wd",5.4,2008,8,"auto(l4)","4",13,17,"r","pickup"
"91","ford","mustang",3.8,1999,6,"manual(m5)","r",18,26,"r","subcompact"
"92","ford","mustang",3.8,1999,6,"auto(l4)","r",18,25,"r","subcompact"
"93","ford","mustang",4,2008,6,"manual(m5)","r",17,26,"r","subcompact"
"94","ford","mustang",4,2008,6,"auto(l5)","r",16,24,"r","subcompact"
"95","ford","mustang",4.6,1999,8,"auto(l4)","r",15,21,"r","subcompact"
"96","ford","mustang",4.6,1999,8,"manual(m5)","r",15,22,"r","subcompact"
"97","ford","mustang",4.6,2008,8,"manual(m5)","r",15,23,"r","subcompact"
"98","ford","mustang",4.6,2008,8,"auto(l5)","r",15,22,"r","subcompact"
"99","ford","mustang",5.4,2008,8,"manual(m6)","r",14,20,"p","subcompact"
"100","honda","civic",1.6,1999,4,"manual(m5)","f",28,33,"r","subcompact"
"101","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"
"102","honda","civic",1.6,1999,4,"manual(m5)","f",25,32,"r","subcompact"
"103","honda","civic",1.6,1999,4,"manual(m5)","f",23,29,"p","subcompact"
"104","honda","civic",1.6,1999,4,"auto(l4)","f",24,32,"r","subcompact"
"105","honda","civic",1.8,2008,4,"manual(m5)","f",26,34,"r","subcompact"
"106","honda","civic",1.8,2008,4,"auto(l5)","f",25,36,"r","subcompact"
"107","honda","civic",1.8,2008,4,"auto(l5)","f",24,36,"c","subcompact"
"108","honda","civic",2,2008,4,"manual(m6)","f",21,29,"p","subcompact"
"109","hyundai","sonata",2.4,1999,4,"auto(l4)","f",18,26,"r","midsize"
"110","hyundai","sonata",2.4,1999,4,"manual(m5)","f",18,27,"r","midsize"
"111","hyundai","sonata",2.4,2008,4,"auto(l4)","f",21,30,"r","midsize"
"112","hyundai","sonata",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"
"113","hyundai","sonata",2.5,1999,6,"auto(l4)","f",18,26,"r","midsize"
"114","hyundai","sonata",2.5,1999,6,"manual(m5)","f",18,26,"r","midsize"
"115","hyundai","sonata",3.3,2008,6,"auto(l5)","f",19,28,"r","midsize"
"116","hyundai","tiburon",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"
"117","hyundai","tiburon",2,1999,4,"manual(m5)","f",19,29,"r","subcompact"
"118","hyundai","tiburon",2,2008,4,"manual(m5)","f",20,28,"r","subcompact"
"119","hyundai","tiburon",2,2008,4,"auto(l4)","f",20,27,"r","subcompact"
"120","hyundai","tiburon",2.7,2008,6,"auto(l4)","f",17,24,"r","subcompact"
"121","hyundai","tiburon",2.7,2008,6,"manual(m6)","f",16,24,"r","subcompact"
"122","hyundai","tiburon",2.7,2008,6,"manual(m5)","f",17,24,"r","subcompact"
"123","jeep","grand cherokee 4wd",3,2008,6,"auto(l5)","4",17,22,"d","suv"
"124","jeep","grand cherokee 4wd",3.7,2008,6,"auto(l5)","4",15,19,"r","suv"
"125","jeep","grand cherokee 4wd",4,1999,6,"auto(l4)","4",15,20,"r","suv"
"126","jeep","grand cherokee 4wd",4.7,1999,8,"auto(l4)","4",14,17,"r","suv"
"127","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",9,12,"e","suv"
"128","jeep","grand cherokee 4wd",4.7,2008,8,"auto(l5)","4",14,19,"r","suv"
"129","jeep","grand cherokee 4wd",5.7,2008,8,"auto(l5)","4",13,18,"r","suv"
"130","jeep","grand cherokee 4wd",6.1,2008,8,"auto(l5)","4",11,14,"p","suv"
"131","land rover","range rover",4,1999,8,"auto(l4)","4",11,15,"p","suv"
"132","land rover","range rover",4.2,2008,8,"auto(s6)","4",12,18,"r","suv"
"133","land rover","range rover",4.4,2008,8,"auto(s6)","4",12,18,"r","suv"
"134","land rover","range rover",4.6,1999,8,"auto(l4)","4",11,15,"p","suv"
"135","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,17,"r","suv"
"136","lincoln","navigator 2wd",5.4,1999,8,"auto(l4)","r",11,16,"p","suv"
"137","lincoln","navigator 2wd",5.4,2008,8,"auto(l6)","r",12,18,"r","suv"
"138","mercury","mountaineer 4wd",4,1999,6,"auto(l5)","4",14,17,"r","suv"
"139","mercury","mountaineer 4wd",4,2008,6,"auto(l5)","4",13,19,"r","suv"
"140","mercury","mountaineer 4wd",4.6,2008,8,"auto(l6)","4",13,19,"r","suv"
"141","mercury","mountaineer 4wd",5,1999,8,"auto(l4)","4",13,17,"r","suv"
"142","nissan","altima",2.4,1999,4,"manual(m5)","f",21,29,"r","compact"
"143","nissan","altima",2.4,1999,4,"auto(l4)","f",19,27,"r","compact"
"144","nissan","altima",2.5,2008,4,"auto(av)","f",23,31,"r","midsize"
"145","nissan","altima",2.5,2008,4,"manual(m6)","f",23,32,"r","midsize"
"146","nissan","altima",3.5,2008,6,"manual(m6)","f",19,27,"p","midsize"
"147","nissan","altima",3.5,2008,6,"auto(av)","f",19,26,"p","midsize"
"148","nissan","maxima",3,1999,6,"auto(l4)","f",18,26,"r","midsize"
"149","nissan","maxima",3,1999,6,"manual(m5)","f",19,25,"r","midsize"
"150","nissan","maxima",3.5,2008,6,"auto(av)","f",19,25,"p","midsize"
"151","nissan","pathfinder 4wd",3.3,1999,6,"auto(l4)","4",14,17,"r","suv"
"152","nissan","pathfinder 4wd",3.3,1999,6,"manual(m5)","4",15,17,"r","suv"
"153","nissan","pathfinder 4wd",4,2008,6,"auto(l5)","4",14,20,"p","suv"
"154","nissan","pathfinder 4wd",5.6,2008,8,"auto(s5)","4",12,18,"p","suv"
"155","pontiac","grand prix",3.1,1999,6,"auto(l4)","f",18,26,"r","midsize"
"156","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",16,26,"p","midsize"
"157","pontiac","grand prix",3.8,1999,6,"auto(l4)","f",17,27,"r","midsize"
"158","pontiac","grand prix",3.8,2008,6,"auto(l4)","f",18,28,"r","midsize"
"159","pontiac","grand prix",5.3,2008,8,"auto(s4)","f",16,25,"p","midsize"
"160","subaru","forester awd",2.5,1999,4,"manual(m5)","4",18,25,"r","suv"
"161","subaru","forester awd",2.5,1999,4,"auto(l4)","4",18,24,"r","suv"
"162","subaru","forester awd",2.5,2008,4,"manual(m5)","4",20,27,"r","suv"
"163","subaru","forester awd",2.5,2008,4,"manual(m5)","4",19,25,"p","suv"
"164","subaru","forester awd",2.5,2008,4,"auto(l4)","4",20,26,"r","suv"
"165","subaru","forester awd",2.5,2008,4,"auto(l4)","4",18,23,"p","suv"
"166","subaru","impreza awd",2.2,1999,4,"auto(l4)","4",21,26,"r","subcompact"
"167","subaru","impreza awd",2.2,1999,4,"manual(m5)","4",19,26,"r","subcompact"
"168","subaru","impreza awd",2.5,1999,4,"manual(m5)","4",19,26,"r","subcompact"
"169","subaru","impreza awd",2.5,1999,4,"auto(l4)","4",19,26,"r","subcompact"
"170","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,25,"p","compact"
"171","subaru","impreza awd",2.5,2008,4,"auto(s4)","4",20,27,"r","compact"
"172","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",19,25,"p","compact"
"173","subaru","impreza awd",2.5,2008,4,"manual(m5)","4",20,27,"r","compact"
"174","toyota","4runner 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","suv"
"175","toyota","4runner 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","suv"
"176","toyota","4runner 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","suv"
"177","toyota","4runner 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","suv"
"178","toyota","4runner 4wd",4,2008,6,"auto(l5)","4",16,20,"r","suv"
"179","toyota","4runner 4wd",4.7,2008,8,"auto(l5)","4",14,17,"r","suv"
"180","toyota","camry",2.2,1999,4,"manual(m5)","f",21,29,"r","midsize"
"181","toyota","camry",2.2,1999,4,"auto(l4)","f",21,27,"r","midsize"
"182","toyota","camry",2.4,2008,4,"manual(m5)","f",21,31,"r","midsize"
"183","toyota","camry",2.4,2008,4,"auto(l5)","f",21,31,"r","midsize"
"184","toyota","camry",3,1999,6,"auto(l4)","f",18,26,"r","midsize"
"185","toyota","camry",3,1999,6,"manual(m5)","f",18,26,"r","midsize"
"186","toyota","camry",3.5,2008,6,"auto(s6)","f",19,28,"r","midsize"
"187","toyota","camry solara",2.2,1999,4,"auto(l4)","f",21,27,"r","compact"
"188","toyota","camry solara",2.2,1999,4,"manual(m5)","f",21,29,"r","compact"
"189","toyota","camry solara",2.4,2008,4,"manual(m5)","f",21,31,"r","compact"
"190","toyota","camry solara",2.4,2008,4,"auto(s5)","f",22,31,"r","compact"
"191","toyota","camry solara",3,1999,6,"auto(l4)","f",18,26,"r","compact"
"192","toyota","camry solara",3,1999,6,"manual(m5)","f",18,26,"r","compact"
"193","toyota","camry solara",3.3,2008,6,"auto(s5)","f",18,27,"r","compact"
"194","toyota","corolla",1.8,1999,4,"auto(l3)","f",24,30,"r","compact"
"195","toyota","corolla",1.8,1999,4,"auto(l4)","f",24,33,"r","compact"
"196","toyota","corolla",1.8,1999,4,"manual(m5)","f",26,35,"r","compact"
"197","toyota","corolla",1.8,2008,4,"manual(m5)","f",28,37,"r","compact"
"198","toyota","corolla",1.8,2008,4,"auto(l4)","f",26,35,"r","compact"
"199","toyota","land cruiser wagon 4wd",4.7,1999,8,"auto(l4)","4",11,15,"r","suv"
"200","toyota","land cruiser wagon 4wd",5.7,2008,8,"auto(s6)","4",13,18,"r","suv"
"201","toyota","toyota tacoma 4wd",2.7,1999,4,"manual(m5)","4",15,20,"r","pickup"
"202","toyota","toyota tacoma 4wd",2.7,1999,4,"auto(l4)","4",16,20,"r","pickup"
"203","toyota","toyota tacoma 4wd",2.7,2008,4,"manual(m5)","4",17,22,"r","pickup"
"204","toyota","toyota tacoma 4wd",3.4,1999,6,"manual(m5)","4",15,17,"r","pickup"
"205","toyota","toyota tacoma 4wd",3.4,1999,6,"auto(l4)","4",15,19,"r","pickup"
"206","toyota","toyota tacoma 4wd",4,2008,6,"manual(m6)","4",15,18,"r","pickup"
"207","toyota","toyota tacoma 4wd",4,2008,6,"auto(l5)","4",16,20,"r","pickup"
"208","volkswagen","gti",2,1999,4,"manual(m5)","f",21,29,"r","compact"
"209","volkswagen","gti",2,1999,4,"auto(l4)","f",19,26,"r","compact"
"210","volkswagen","gti",2,2008,4,"manual(m6)","f",21,29,"p","compact"
"211","volkswagen","gti",2,2008,4,"auto(s6)","f",22,29,"p","compact"
"212","volkswagen","gti",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"
"213","volkswagen","jetta",1.9,1999,4,"manual(m5)","f",33,44,"d","compact"
"214","volkswagen","jetta",2,1999,4,"manual(m5)","f",21,29,"r","compact"
"215","volkswagen","jetta",2,1999,4,"auto(l4)","f",19,26,"r","compact"
"216","volkswagen","jetta",2,2008,4,"auto(s6)","f",22,29,"p","compact"
"217","volkswagen","jetta",2,2008,4,"manual(m6)","f",21,29,"p","compact"
"218","volkswagen","jetta",2.5,2008,5,"auto(s6)","f",21,29,"r","compact"
"219","volkswagen","jetta",2.5,2008,5,"manual(m5)","f",21,29,"r","compact"
"220","volkswagen","jetta",2.8,1999,6,"auto(l4)","f",16,23,"r","compact"
"221","volkswagen","jetta",2.8,1999,6,"manual(m5)","f",17,24,"r","compact"
"222","volkswagen","new beetle",1.9,1999,4,"manual(m5)","f",35,44,"d","subcompact"
"223","volkswagen","new beetle",1.9,1999,4,"auto(l4)","f",29,41,"d","subcompact"
"224","volkswagen","new beetle",2,1999,4,"manual(m5)","f",21,29,"r","subcompact"
"225","volkswagen","new beetle",2,1999,4,"auto(l4)","f",19,26,"r","subcompact"
"226","volkswagen","new beetle",2.5,2008,5,"manual(m5)","f",20,28,"r","subcompact"
"227","volkswagen","new beetle",2.5,2008,5,"auto(s6)","f",20,29,"r","subcompact"
"228","volkswagen","passat",1.8,1999,4,"manual(m5)","f",21,29,"p","midsize"
"229","volkswagen","passat",1.8,1999,4,"auto(l5)","f",18,29,"p","midsize"
"230","volkswagen","passat",2,2008,4,"auto(s6)","f",19,28,"p","midsize"
"231","volkswagen","passat",2,2008,4,"manual(m6)","f",21,29,"p","midsize"
"232","volkswagen","passat",2.8,1999,6,"auto(l5)","f",16,26,"p","midsize"
"233","volkswagen","passat",2.8,1999,6,"manual(m5)","f",18,26,"p","midsize"
"234","volkswagen","passat",3.6,2008,6,"auto(s6)","f",17,26,"p","midsize"


Since I access data from GitLab often, I created the following function and saved it pyGitLab.py in my utils directory and added the path to the directory to PYTHONPATH environment variable for the user.

In [20]:
# Reading single files from GitLab

import gitlab
from io import StringIO, BytesIO

def gl2Str(filepath, projectID,branch='master'):
    # Reading a text-like file
    return gitlab.Gitlab('https://gitlab.com/').projects.get(projectID).files.raw(file_path=filepath, ref=branch).decode()

def gl2StrObj(filepath, projectID,branch='master'):
    # Reading a text-like file as a StringIO object
    return StringIO(gitlab.Gitlab('https://gitlab.com/').projects.get(projectID).files.raw(file_path=filepath, ref=branch).decode())
    
def gl2ByteObj(filepath, projectID,branch='master'):
    # Reading a non-text file as a ByteIO object. Examples: Images, Zip files, etc
    return BytesIO(gitlab.Gitlab('https://gitlab.com/').projects.get(projectID).files.raw(file_path=filepath, ref=branch).decode())

[^top]

Last updated 2020-12-16 15:04:41.099138 IST

Comments