示例#1
0
    def __init__(self, url, configuration=Configuration(), debug=False):
        # Set debugging settings
        if debug:
            self.debug = debug

        # Find site settings
        supported_sites = configuration.get_supported_sites().items()
        _, settings = (
            (
                (site, settings)
                for (site, settings) in supported_sites
                if site in url
            ).__next__())

        # Attempt to retrieve page
        try:
            page = requests.get(
                url, headers={"User-Agent": UserAgent().random})
        except:
            raise HTTPStatusException(page.status_code)
        else:
            print("Retrieved [%s](%s) Length: %d" %
                  (settings["site"], url, len(page.text)))

        # Get domain name
        parsed_uri = urlparse(url)
        self.domain = '{uri.scheme}://{uri.netloc}'.format(uri=parsed_uri)

        # Save url
        self.url = url

        # Process article
        page_soup = BeautifulSoup(page.text, "html.parser")
        article_soup = page_soup.select_one(settings["content_selector"])
        if article_soup is None:
            return

        # Convert all URLs to static global URLs
        article_soup = self.replace_url(article_soup)

        # Modify specified selectors
        article_html = self.modify_selectors(
            article_soup, settings["modifications"])

        # Replace local regex
        article_html = self.replace_local(
            article_html, settings["replacements"])
        self.article_html = article_html

        # Replace html with markdown
        article_text = self.replace_markdown(article_html)

        # Replace global regex
        article_text = self.replace_global(article_text)

        # Save article text to object-scope variable
        self.article_text = article_text

        if debug:
            print(article_html)
 def on_state_changed(self):
     sbm_normalised = self.sbm_check_box.isChecked()
     background_method = self.background_button_group.checkedButton().method
     excluded_spots = self.calculate_current_excluded_spots()
     self.current_config = Configuration(sbm_normalised, background_method,
                                         excluded_spots)
     self.state_changed.emit()
示例#3
0
    def process_samples(self):
        self.clear_previous_calculations()

        samples = list(self.samples_by_name.values())
        equilibrium_standards = self.view.ask_user_for_equilibrium_standards(
            samples, [])
        if equilibrium_standards is None:
            return
        for sample in samples:
            if sample in equilibrium_standards:
                sample.is_standard = True

        # age_standard_info = self.view.ask_user_for_age_standard(samples, equilibrium_standards)
        # if age_standard_info is None:
        # return

        # self.manual_whole_rock_values(samples)
        self.view.ask_user_for_WR_activity_ratios(samples)

        self.standardise_all_sbm_and_calculate_time_series(samples)

        default_config = Configuration(
            normalise_by_sbm=True,
            background_method=BackgroundCorrection.EXP,
            excluded_spots=frozenset())

        self.view.show_user_results(samples, default_config,
                                    self.ensure_config_calculated, self.data,
                                    self.export_results)
示例#4
0
def update_configuration():
    if request.is_json:
        try:
            json_data = request.get_data()
            active_charity = json_data['active_charity']
            configuration_json = configurationRepository.read()
            configuration = Configuration.build_from_json(configuration_json)
            if configuration is None:
                configuration = Configuration(last_donation_value=0.0,
                                              active_charity=active_charity)
                configurationRepository.create(configuration)
            else:
                configuration.active_charity = active_charity
                configurationRepository.update(configuration)
        except KeyError as e:
            raise Exception("Key not found in json_data: {}".format(e.message))

    configuration = Configuration.build_from_json(
        configurationRepository.read())
    return dumps(configuration.get_as_json())
示例#5
0
    def initialize(self):
        try:
            with open(self.fileName, 'r') as json_file:
                json_array = json.load(json_file)
                configurations = []

                for item in json_array:
                    url = item['url']
                    user = User(item['user']['username'],
                                item['user']['password'])
                    testCase = item['test_case']

                    configuration = Configuration(url)
                    configuration.user = user
                    configuration.testCase = testCase

                    configurations.append(configuration)
                return configurations
        except FileNotFoundError:
            print(
                f'ConfigurationManager - Error: file {self.fileName} is not found!'
            )
 def __init__(self):
     print("RNPB started in", "debug" if self.debug else "standard", "mode")
     # Don't print stacktrace on ctrl-c
     signal.signal(signal.SIGINT, lambda x, y: sys.exit(0))
     self.configuration = Configuration()
     self.reddit = Reddit(self.configuration)