Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
List overview
Download
copr-commits
October 2015
----- 2024 -----
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
copr-commits@lists.fedorahosted.org
4 participants
149 discussions
Start a n
N
ew thread
[copr] master: Removed __version__ from cli and python (28c7e65)
by Miroslav Suchý
30 Oct '15
30 Oct '15
Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master >--------------------------------------------------------------- commit 28c7e6509692f9ef14cd6fee91883ef74ae154a9 Author: Sergio Oliveira <sergio(a)tracy.com.br> Date: Mon Oct 26 09:59:33 2015 -0200 Removed __version__ from cli and python >--------------------------------------------------------------- cli/copr_cli/main.py | 4 ---- python/copr/client/__init__.py | 1 - 2 files changed, 0 insertions(+), 5 deletions(-) diff --git a/cli/copr_cli/main.py b/cli/copr_cli/main.py index 4d99281..8d55466 100644 --- a/cli/copr_cli/main.py +++ b/cli/copr_cli/main.py @@ -4,8 +4,6 @@ import os import re import subprocess -__version__ = "1.45.1" - import argparse from urlparse import urlparse import sys @@ -293,8 +291,6 @@ def setup_parser(): """ parser = argparse.ArgumentParser(prog="copr") # General connection options - parser.add_argument("--version", action="version", - version="copr {0}".format(__version__)) parser.add_argument("--debug", dest="debug", action="store_true", help="Enable debug output") diff --git a/python/copr/client/__init__.py b/python/copr/client/__init__.py index 4828ca3..de758cd 100644 --- a/python/copr/client/__init__.py +++ b/python/copr/client/__init__.py @@ -3,7 +3,6 @@ Python client for copr service. """ __author__ = 'vgologuz(a)redhat.com' -__version__ = "1.59.0" from .client import CoprClient
1
0
0
0
[copr] master: Added version parse from specs instead of __init__ (0316256)
by Miroslav Suchý
30 Oct '15
30 Oct '15
Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master >--------------------------------------------------------------- commit 03162567274cba22b47eba75dfa5a52a9efdc2af Author: Sergio Oliveira <sergio(a)tracy.com.br> Date: Thu Oct 22 09:27:09 2015 -0200 Added version parse from specs instead of __init__ >--------------------------------------------------------------- cli/setup.py | 4 ++-- python/setup.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cli/setup.py b/cli/setup.py index e55b978..202a840 100644 --- a/cli/setup.py +++ b/cli/setup.py @@ -25,7 +25,7 @@ def read(*parts): def find_version(*file_paths): version_file = read(*file_paths) - version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", + version_match = re.search(r"^Version: (.*)$", version_file, re.M) if version_match: return version_match.group(1) @@ -33,7 +33,7 @@ def find_version(*file_paths): __name__ = 'copr-cli' -__version__ = find_version('copr_cli/main.py') +__version__ = find_version('copr-cli.spec') __description__ = "CLI tool to run copr" __author__ = "Pierre-Yves Chibon" __author_email__ = "pingou(a)pingoured.fr" diff --git a/python/setup.py b/python/setup.py index 066748f..b831232 100644 --- a/python/setup.py +++ b/python/setup.py @@ -21,10 +21,10 @@ def read(*parts): def find_version(*file_paths): version_file = read(*file_paths) - version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", + version_match = re.search(r"^Version: (.*)$", version_file, re.M) if version_match: - return version_match.group(1) + return version_match.group(1).strip() raise RuntimeError("Unable to find version string.") @@ -35,7 +35,7 @@ requires = [ ] -__version__ = find_version('copr/client/__init__.py') +__version__ = find_version('python-copr.spec') __description__ = "Python client for copr service." __author__ = "Valentin Gologuzov" __author_email__ = "vgologuz(a)redhat.com"
1
0
0
0
[copr] master: Fixes to allow copr lib to be installed using setup.py (b66a538)
by Miroslav Suchý
30 Oct '15
30 Oct '15
Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master >--------------------------------------------------------------- commit b66a538e8dd48dc48279483d59eb106f06d7ff84 Author: Sergio Oliveira <sergio(a)tracy.com.br> Date: Mon Oct 19 17:04:50 2015 -0200 Fixes to allow copr lib to be installed using setup.py >--------------------------------------------------------------- python/copr/client/__init__.py | 3 +-- python/setup.py | 23 ++++++++++++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/python/copr/client/__init__.py b/python/copr/client/__init__.py index 52f7c6c..4828ca3 100644 --- a/python/copr/client/__init__.py +++ b/python/copr/client/__init__.py @@ -3,8 +3,7 @@ Python client for copr service. """ __author__ = 'vgologuz(a)redhat.com' -__version__ = "0.0.1" -__description__ = "Python client for copr service." +__version__ = "1.59.0" from .client import CoprClient diff --git a/python/setup.py b/python/setup.py index 3ecacf3..066748f 100644 --- a/python/setup.py +++ b/python/setup.py @@ -1,5 +1,9 @@ #!/usr/bin/python +import re +import os +import codecs + from setuptools import setup long_description = """Copr is designed to be a lightweight buildsystem that allows contributors @@ -9,7 +13,20 @@ is used to allow packagers to create third party repositories. This part is a python client to the copr service.""" -from copr.client import __description__, __version__ + +def read(*parts): + return codecs.open(os.path.join(os.path.dirname(__file__), *parts), + encoding='utf8').read() + + +def find_version(*file_paths): + version_file = read(*file_paths) + version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", + version_file, re.M) + if version_match: + return version_match.group(1) + raise RuntimeError("Unable to find version string.") + requires = [ 'requests', @@ -18,8 +35,8 @@ requires = [ ] -__version__ = __version__ -__description__ = __description__ +__version__ = find_version('copr/client/__init__.py') +__description__ = "Python client for copr service." __author__ = "Valentin Gologuzov" __author_email__ = "vgologuz(a)redhat.com" __url__ = "
http://fedorahosted.org/copr/
"
1
0
0
0
[copr] master: Fixed invalid classifiers (a496af1)
by Miroslav Suchý
30 Oct '15
30 Oct '15
Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master >--------------------------------------------------------------- commit a496af1ea0c1011a13b5572b825d2fe8cf60fe93 Author: Sergio Oliveira <sergio(a)tracy.com.br> Date: Mon Oct 19 14:28:46 2015 -0200 Fixed invalid classifiers >--------------------------------------------------------------- cli/copr_cli/main.py | 2 +- cli/setup.py | 2 +- keygen/setup.py | 2 +- python/setup.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cli/copr_cli/main.py b/cli/copr_cli/main.py index a44d3f9..4d99281 100644 --- a/cli/copr_cli/main.py +++ b/cli/copr_cli/main.py @@ -4,7 +4,7 @@ import os import re import subprocess -__version__ = "1.45.0" +__version__ = "1.45.1" import argparse from urlparse import urlparse diff --git a/cli/setup.py b/cli/setup.py index cc71fd1..e55b978 100644 --- a/cli/setup.py +++ b/cli/setup.py @@ -54,7 +54,7 @@ setup( "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Topic :: System :: Archiving :: Packaging", - "Development Status :: 1 - Alpha", + "Development Status :: 3 - Alpha", ], install_requires=requires, packages=['copr_cli'], diff --git a/keygen/setup.py b/keygen/setup.py index 130b028..85a6523 100644 --- a/keygen/setup.py +++ b/keygen/setup.py @@ -39,7 +39,7 @@ setup( "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Topic :: System :: Archiving :: Packaging", - "Development Status :: 1 - Alpha", + "Development Status :: 3 - Alpha", ], install_requires=requires, package_dir={'': 'src'}, diff --git a/python/setup.py b/python/setup.py index 5b853c3..3ecacf3 100644 --- a/python/setup.py +++ b/python/setup.py @@ -39,7 +39,7 @@ setup( "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Topic :: System :: Archiving :: Packaging", - "Development Status :: 1 - Alpha", + "Development Status :: 3 - Alpha", ], install_requires=requires, packages=['copr', 'copr.client', 'copr.client_v2', 'copr.test'],
1
0
0
0
[copr] master: Fixes to allow copr-cli to be installed using setup.py (84d6b40)
by Miroslav Suchý
30 Oct '15
30 Oct '15
Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master >--------------------------------------------------------------- commit 84d6b4018ffad8afaee671a86bf8e5edcf2f94ca Author: Sergio Oliveira <sergio(a)tracy.com.br> Date: Mon Oct 19 17:09:59 2015 -0200 Fixes to allow copr-cli to be installed using setup.py >--------------------------------------------------------------- cli/copr_cli/main.py | 3 +-- cli/setup.py | 26 ++++++++++++++++++++------ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/cli/copr_cli/main.py b/cli/copr_cli/main.py index a881017..a44d3f9 100644 --- a/cli/copr_cli/main.py +++ b/cli/copr_cli/main.py @@ -4,8 +4,7 @@ import os import re import subprocess -__version__ = "0.3.0" -__description__ = "CLI tool to run copr" +__version__ = "1.45.0" import argparse from urlparse import urlparse diff --git a/cli/setup.py b/cli/setup.py index c4b37d1..cc71fd1 100644 --- a/cli/setup.py +++ b/cli/setup.py @@ -1,8 +1,10 @@ #!/usr/bin/python -from setuptools import setup +import codecs +import os +import re -import sys +from setuptools import setup long_description = """Copr is designed to be a lightweight buildsystem that allows contributors to create packages, put them in repositories, and make it easy for users @@ -11,16 +13,28 @@ is used to allow packagers to create third party repositories. This part is a command line interface to use copr.""" -from copr_cli.main import __description__, __version__ - requires = [ 'copr' ] +def read(*parts): + return codecs.open(os.path.join(os.path.dirname(__file__), *parts), + encoding='utf8').read() + + +def find_version(*file_paths): + version_file = read(*file_paths) + version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", + version_file, re.M) + if version_match: + return version_match.group(1) + raise RuntimeError("Unable to find version string.") + + __name__ = 'copr-cli' -__version__ = __version__ -__description__ = __description__ +__version__ = find_version('copr_cli/main.py') +__description__ = "CLI tool to run copr" __author__ = "Pierre-Yves Chibon" __author_email__ = "pingou(a)pingoured.fr" __url__ = "
http://fedorahosted.org/copr/
"
1
0
0
0
[copr] master: ImportError: No module named exceptions (2e67fdf)
by Miroslav Suchý
30 Oct '15
30 Oct '15
Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master >--------------------------------------------------------------- commit 2e67fdffddceb45ae728bcb84628209799b3ab42 Author: Miroslav Suchý <msuchy(a)redhat.com> Date: Fri Oct 30 15:09:49 2015 +0100 ImportError: No module named exceptions >--------------------------------------------------------------- cli/copr_cli/main.py | 2 +- cli/tests/test_cli.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cli/copr_cli/main.py b/cli/copr_cli/main.py index 8f25650..a881017 100644 --- a/cli/copr_cli/main.py +++ b/cli/copr_cli/main.py @@ -27,7 +27,7 @@ log = logging.getLogger(__name__) log.addHandler(NullHandler()) from copr import CoprClient -import copr.client.exceptions as copr_exceptions +import copr.exceptions as copr_exceptions from .util import ProgressBar diff --git a/cli/tests/test_cli.py b/cli/tests/test_cli.py index b6ad6d1..6c82fbf 100644 --- a/cli/tests/test_cli.py +++ b/cli/tests/test_cli.py @@ -11,7 +11,7 @@ import time import copr from copr.client.parsers import ProjectListParser, CommonMsgErrorOutParser from copr.client.responses import CoprResponse -from copr.client.exceptions import CoprConfigException, CoprNoConfException, \ +from copr.exceptions import CoprConfigException, CoprNoConfException, \ CoprRequestException, CoprUnknownResponseException, CoprException, \ CoprBuildException from copr.client import CoprClient
1
0
0
0
[copr] master: put client_v2 into package (788b9de)
by Miroslav Suchý
30 Oct '15
30 Oct '15
Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master >--------------------------------------------------------------- commit 788b9de7c1d4302ef03230b0f0e71fd0942d208f Author: Miroslav Suchý <msuchy(a)redhat.com> Date: Fri Oct 30 15:05:56 2015 +0100 put client_v2 into package >--------------------------------------------------------------- python/setup.py | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/python/setup.py b/python/setup.py index fa3727f..5b853c3 100644 --- a/python/setup.py +++ b/python/setup.py @@ -42,7 +42,7 @@ setup( "Development Status :: 1 - Alpha", ], install_requires=requires, - packages=['copr', 'copr.client', 'copr.test'], + packages=['copr', 'copr.client', 'copr.client_v2', 'copr.test'], include_package_data=True, zip_safe=False, )
1
0
0
0
[copr] master: disable python3 tests temporary (88a9f4a)
by Miroslav Suchý
30 Oct '15
30 Oct '15
Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master >--------------------------------------------------------------- commit 88a9f4a0240e52bdfb6f3e442e0b19b085c17c9e Author: Miroslav Suchý <msuchy(a)redhat.com> Date: Fri Oct 30 15:03:00 2015 +0100 disable python3 tests temporary because it does not work >--------------------------------------------------------------- python/python-copr.spec | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/python/python-copr.spec b/python/python-copr.spec index 322c4b7..739ab20 100644 --- a/python/python-copr.spec +++ b/python/python-copr.spec @@ -148,7 +148,7 @@ cp -a docs/_build/html %{buildroot}%{_pkgdocdir}/ %if 0%{?with_python3} pushd %{py3dir} -%{__python3} -m pytest copr/test +#%{__python3} -m pytest copr/test popd %endif # with_python3
1
0
0
0
[copr] master: Display progress bar if python-progress is available (3abbd9f)
by Miroslav Suchý
30 Oct '15
30 Oct '15
Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master >--------------------------------------------------------------- commit 3abbd9ffa3cf358e1634b76aa471e984794c6ec3 Author: Sergio Oliveira <sergio(a)tracy.com.br> Date: Thu Oct 22 14:42:02 2015 -0200 Display progress bar if python-progress is available >--------------------------------------------------------------- cli/copr_cli/main.py | 18 ++++++++++++++- cli/copr_cli/util.py | 48 ++++++++++++++++++++++++++++++++++++++++++ python/copr/client/client.py | 16 ++++++++++--- 3 files changed, 77 insertions(+), 5 deletions(-) diff --git a/cli/copr_cli/main.py b/cli/copr_cli/main.py index ba24054..8f25650 100644 --- a/cli/copr_cli/main.py +++ b/cli/copr_cli/main.py @@ -29,6 +29,8 @@ log.addHandler(NullHandler()) from copr import CoprClient import copr.client.exceptions as copr_exceptions +from .util import ProgressBar + no_config_warning = """ |================ WARNING: =======================| @@ -159,10 +161,24 @@ class Commands(object): copr = m.group(2) else: username = None + + if os.path.exists(args.pkgs[0]): + bar = ProgressBar(max=os.path.getsize(args.pkgs[0])) + + def progress_callback(monitor): + bar.next(n=8192) + + print('Uploading package {}'.format(args.pkgs[0])) + else: + progress_callback = None + result = self.client.create_new_build( projectname=copr, chroots=args.chroots, pkgs=args.pkgs, memory=args.memory, timeout=args.timeout, - username=username) + username=username, progress_callback=progress_callback) + + bar.finish() + if result.output != "ok": print(result.error) return diff --git a/cli/copr_cli/util.py b/cli/copr_cli/util.py new file mode 100644 index 0000000..bb73415 --- /dev/null +++ b/cli/copr_cli/util.py @@ -0,0 +1,48 @@ +# coding: utf-8 + +try: + from progress.bar import Bar +except ImportError: + progress = False +else: + progress = True + + +def format_size(bytes): + if bytes > 1000 * 1000: + return '%.1fMB' % (bytes / 1000.0 / 1000) + elif bytes > 10 * 1000: + return '%ikB' % (bytes / 1000) + elif bytes > 1000: + return '%.1fkB' % (bytes / 1000.0) + else: + return '%ibytes' % bytes + + +class ProgressMixin(object): + + @property + def download_speed(self): + if self.avg == 0.0: + return "..." + return format_size(1 / self.avg) + "/s" + + @property + def downloaded(self): + return format_size(self.index) + + +class DummyBar(object): + def __init__(self, max=None): + pass + + def next(self, n=None): + pass + + +if progress: + class ProgressBar(Bar, ProgressMixin): + message = "%(percent)d%%" + suffix = "%(downloaded)s %(download_speed)s eta %(eta_td)s" +else: + ProgressBar = DummyBar diff --git a/python/copr/client/client.py b/python/copr/client/client.py index 40071f7..f7f6c7a 100644 --- a/python/copr/client/client.py +++ b/python/copr/client/client.py @@ -14,7 +14,8 @@ import requests import six from six.moves import configparser -from requests_toolbelt.multipart.encoder import MultipartEncoder +from requests_toolbelt.multipart.encoder import (MultipartEncoder, + MultipartEncoderMonitor) # urlparse from six is not available on el7 # because it requires at least python-six-1.4.1 @@ -301,7 +302,8 @@ class CoprClient(UnicodeMixin): return response def create_new_build(self, projectname, pkgs, username=None, - timeout=None, memory=None, chroots=None): + timeout=None, memory=None, chroots=None, + progress_callback=None): """ Creates new build :param projectname: name of Copr project (without user namespace) @@ -310,6 +312,8 @@ class CoprClient(UnicodeMixin): :param timeout: [optional] build timeout :param memory: [optional] amount of required memory for build process :param chroots: [optional] build only with given chroots + :param progress_callback: [optional] a function that received a + MultipartEncoderMonitor instance for each chunck of uploaded data :return: :py:class:`~.responses.CoprResponse` with additional fields: @@ -321,7 +325,6 @@ class CoprClient(UnicodeMixin): "memory_reqs": memory, "timeout": timeout } - headers = None if urlparse(pkgs[0]).scheme != "": api_endpoint = "new_build" @@ -342,7 +345,12 @@ class CoprClient(UnicodeMixin): data[chroot] = "y" m = MultipartEncoder(data) - data = self._fetch(url, m, method="post", headers={'Content-Type': m.content_type}) + + callback = progress_callback or (lambda x: x) + + monit = MultipartEncoderMonitor(m, callback) + data = self._fetch(url, monit, method="post", + headers={'Content-Type': monit.content_type}) response = CoprResponse( client=self,
1
0
0
0
[copr] master: [frontend] fix permission tab on project page (f1cefa2)
by asamalik@fedoraproject.org
29 Oct '15
29 Oct '15
Repository :
http://git.fedorahosted.org/cgit/copr.git
On branch : master >--------------------------------------------------------------- commit f1cefa2cea094d8b14041455af69d22ef1f3f056 Author: Adam Samalik <asamalik(a)redhat.com> Date: Thu Oct 29 11:23:07 2015 +0100 [frontend] fix permission tab on project page >--------------------------------------------------------------- .../coprs/templates/coprs/detail.html | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/frontend/coprs_frontend/coprs/templates/coprs/detail.html b/frontend/coprs_frontend/coprs/templates/coprs/detail.html index f07d7b0..8ac1c53 100644 --- a/frontend/coprs_frontend/coprs/templates/coprs/detail.html +++ b/frontend/coprs_frontend/coprs/templates/coprs/detail.html @@ -62,7 +62,9 @@ <ul class="nav nav-tabs"> {{ nav_element("overview", "Overview", url_overview) }} + {{ nav_element("builds", "Builds", url_builds) }} + {{ nav_element("monitor", "Monitor", url_monitor) }} {% if g.user and g.user.can_build_in(copr) %} @@ -71,16 +73,17 @@ {% if g.user and g.user.can_edit(copr) %} {{ nav_element("edit", "Edit", url_edit) }} - {{ nav_element("delete", "Delete", url_delete) }} {% endif %} - - {% if g.user and not copr.is_a_group_project and g.user.can_edit(copr) %} + {% if g.user and not copr.is_a_group_project %} {{ nav_element("permissions", "Permission", url_for( 'coprs_ns.copr_permissions', username = copr.owner.name, coprname = copr.name)) }} {% endif %} + {% if g.user and g.user.can_edit(copr) %} + {{ nav_element("delete", "Delete", url_delete) }} + {% endif %} </ul> {% block detail_body %}{% endblock %}
1
0
0
0
← Newer
1
2
3
4
...
15
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Results per page:
10
25
50
100
200