def load(self, requirements_file=None):
        """Load or reload requirements from a requirements.txt file.

        :param requirements_file: if not given, the filename used from
            initialization will be read again.
        """
        if requirements_file is None:
            requirements_file = self.filename
            if requirements_file is None:
                raise ValueError("no filename provided")
        elif isinstance(requirements_file, text_type):
            requirements_file = Path(requirements_file)
        self.clear()
        with requirements_file.open() as f:
            self.loads(f.read())

        if isinstance(requirements_file, (text_type, Path)):
            self.filename = requirements_file
def draw(self, context):
        layout = self.layout

        layout.operator(
                "wm.url_open", text="Add-ons Catalog", icon='URL',
                ).url = "http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts"

        layout.separator()

        layout.operator(
                "wm.url_open", text="How to share your add-on", icon='URL',
                ).url = "http://wiki.blender.org/index.php/Dev:Py/Sharing"
        layout.operator(
                "wm.url_open", text="Add-on Guidelines", icon='URL',
                ).url = "http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Guidelines/Addons"
        layout.operator(
                "wm.url_open", text="API Concepts", icon='URL',
                ).url = bpy.types.WM_OT_doc_view._prefix + "/info_quickstart.html"
        layout.operator("wm.url_open", text="Add-on Tutorial", icon='URL',
                ).url = "http://www.blender.org/api/blender_python_api_current/info_tutorial_addon.html"