Webpage Modules

Classes Supporting Webpage Building

class environment_generation.website_util.Page(page_id)

Bases: object

Represents a collection of primitives within a website.

Attributes:

primitives (list): A list of primitive objects on the page. total_num_dom_elements (int): Total number of DOM elements associated with all primitives on the page. difficulty (float): Difficulty level of the page. page_id (str): Identifier for the page.

Methods:

__init__: Initializes a Page object with the given page ID. num_primitives: Returns the number of primitives on the page. active_primitives: Returns a list of active primitives on the page. passive_primitives: Returns a list of passive (non-active) primitives on the page. add_primitive: Adds a primitive to the page. calculate_difficulty: Computes and returns the difficulty of the page based on primitive interactions.

Example:
>>> page = Page('home')
>>> print(page.num_primitives)
0
property active_primitives

Returns a list of active primitives on the page.

Returns:

list: List of active primitives on the page.

add_primitive(primitive)

Adds a primitive to the page.

Args:

primitive (Primitive): The primitive to be added to the page.

calculate_difficulty()

Computes and returns the difficulty of the page based on the probability of a random agent interacting with the correct primitives.

Returns:

float: The calculated difficulty of the page.

property num_primitives

Returns the number of primitives on the page.

Returns:

int: Number of primitives on the page.

property passive_primitives

Returns a list of passive (non-active) primitives on the page.

Returns:

list: List of passive primitives on the page.

class environment_generation.website_util.Primitive(name, primitive_id=None)

Bases: object

Represents a primitive element on a web page.

Attributes:

name (str): Name of the primitive. primitive_id (int, optional): ID of the primitive, used to identify the primitive especially when multiple primitives of the same type exist on a page. num_dom_elements (int): Number of DOM elements associated with the primitive. is_active (bool): Indicates whether the primitive is active or not.

Methods:

__init__: Initializes a primitive with the given name and optional ID. __str__: Returns a string representation of the primitive. __repr__: Returns a string representation of the primitive suitable for debugging.

Example:
>>> primitive = Primitive('button', primitive_id=1)
>>> print(primitive)
button:1. Active: True
class environment_generation.website_util.Website(design=None, pages=None)

Bases: object

A Website is a sequence of pages, representing a complete website structure.

Attributes:

difficulty (float): The difficulty level of the entire website. _pages (list): A list of Page objects representing the pages of the website.

Methods:

__init__: Initializes a Website object with provided design or pages. _calculate_difficulty: Computes and updates the difficulty of the entire website. add_page: Adds a page to the website. remove_page: Removes a page from the website. convert_to_design: Converts the website structure into a design dictionary format.

add_page(page)

Adds a page to the website.

Args: page (Page): The page to be added to the website.

convert_to_design()

Converts the website structure into a design dictionary format.

Returns: dict: A dictionary representing the design of the website.

remove_page(page)

Removes a page from the website.

Args: page (Page): The page to be removed from the website.

environment_generation.website_util.main(_)