speed: 2, frame: 100
speed: 0.5, frame: 10
ON/OFF: , speed: 10, frame: 10
speed: 10, frame: 10, color:200, 200, 200


{% extends "base.html" %} {% block content %}
People With Beards was founded in 1933 to advance the cause of beards.


|
After beginning JavaScript this past week, I realized there are some similarities between the two object oriented languages. But so far, with my limited use of JavaScript, I definitely prefer using Ruby for many reasons. JavaScript has more flexibility in terms of coding, and it gives you a variety of ways to code depending on your preferences. For example, from the Eloquent JavaScript link we read from, it said that sometimes a " ; " is required but the code can still run even without. However, with that flexibility, it can also lead to numerous and messy errors in the code. On the other hand, Ruby is a lot stricter and the errors are more specific so that we know what is wrong with the program. Ruby Hashes Vs JavaScript Objects RUBY In Ruby, hashes are a way of storing data using a collection of key-value pairs. Values are assigned to keys using the "=>" sign. Hashes can be accessed by calling on the key that corresponds to each value. hash = {
JAVASCRIPT In JavaScript, objects are very similar to Ruby's hashes. The keys are called properties and instead of using " => ", we use " : " to separate the keys and keys and values. These values can be accessed by typing the object name and the name of the property with a period in between the two, just like calling a method in Ruby. var object = {
|


Since way too many of you requested this and because Forge bricked their legacy software (i.e. ForgeGradle 2.x), I made it. Click to manipulate the image, right click and use the Browser's "save image as" feature to save.


This was my grandmother's apple pie recipe. I have never seen another one quite like it. It will always
be my favorite and has won me several first place prizes in local competitions. I hope it becomes one of
your favorites as well!
Ingredients
1 recipe pastry for a 9 inch double crust pie
1/2 cup unsalted butter
3 tablespoons all-purpose flour
1/4 cup water
1/2 cup white sugar
1/2 cup packed brown sugar
8 Granny Smith apples - peeled, cored and sliced
Directions
Preheat oven to 425 degrees F (220 degrees C). Melt the butter in a saucepan. Stir in flour to form
a paste. Add water, white sugar and brown sugar, and bring to a boil. Reduce temperature and let
simmer.
Place the bottom crust in your pan. Fill with apples, mounded slightly. Cover with a lattice work
crust. Gently pour the sugar and butter liquid over the crust.
Bake 15 minutes in the preheated oven. Reduce the temperature to 350 degrees F (175 degrees C).
Continue baking for 35 to 45 minutes, until apples are soft.


{% extends 'djangoapp/page-template.html' %} {% block head %} {% endblock %} {% block content %}
You are not authenticated, that's why you see this message.
Login and you will be able to add review.


---
layout: post
title: ! 'Software Development: So what do your users need?'
tags:
- Application Lifecycle Management
- Business
- Project Management
- Software Development
- Work Practices
status: publish
type: post
published: true
meta: {}
---
If you noodle around the Internet you can find some very gloomy reports showing the number of software projects that fail to meet users expectations. Whilst many of the reports are paid for by vendors of Requirement Management software, they are still pretty depressing. Why are we so bad at delivering software to our customers? There are many reasons and volumes have been written about it, however I think we can distil it down to three main issues:
- Lack of Domain knowledge. We don't understand the language and needs of the user because we do not speak the same language. This can be a hard problem to spot because we are apparently speaking the same language e.g. Spanish. However human communication is overlaid with myriad assumptions and unspoken meanings. In a complex business environment then these assumptions often become invisible and hidden meanings become more and more significant. So our customers make assumptions about our understanding and we make assumptions about their meaning and intent.
- Poor documentation. We write the customers requirements in such a dense manner (and even the humble use case is pretty dense to most business users) that our users cannot continue the requirements conversation in any meaningful way. It's hard to see the omissions, assumptions and dependencies in our documents -- a seven page use case is not something to be proud of!
- Poor Requirements Lifecycle. Properly managed requirements can be used throughout the product lifecycle to answer two keys questions
- Are we creating value for the customer in what we are doing today?
- Have we created something that is correct and useful?
Unfortunately, after they are written, requirements are often tucked away in a word processed document and forgotten until the law suites start. They are hard to use and cannot be exploited by the design or test team to provide relevant designs or tests. With appropriate document formats and linking of information then the information can and must be be used throughout the development process
How can we address these issues?
- Keep it simple. Use simple language to describe requirements that can use understood by customers and developers. Using Casual Use Cases or XP style User Stories. Creating these types of documents involves you in having conversations and making agreements with your customers -- make sure that everyone understands these agreements and the assumptions they are based on. Make of note of these assumptions and decisions.
- Place the information in an accessible place. E.g. Pinned to the wall, located in a WiKi (my personal favourite)
- If you really need a "proper" requirements document you can consolidate and reformat your simple document into something that can be signed off.
- Only have one single definitive set of requirements. Don't keep the same information in two different places
- Show how the information flows and links in the Requirements and Development process e.g.
- Vision lead to
- Objectives lead to
- Business requirements break down into
- User Stories lead to
- Acceptance tests
(These are only examples -- you will need to agree a document hierarchy with your team and stakeholders. It will depend on your culture and process)
- Constantly check back to the requirements and accommodate changes to them (big of a big one slipped in there!). Keep having those important conversations and talking about assumptions and hidden meanings.
So what is the requirements 'Elevator Pitch'?
Requirements drive everything we do so make them useful and easy to use!!


Privacy Policy: We will only ever send you one email- when your Watchdog times out. After the email is sent, your address is wiped from the database.
How Does It Work
When you type in an email address and click Start Watchdog, a Watchdog Timer starts running on our servers.
After the timeout parameter has elapsed, Watchdog.Email sends an email to the address you specified notifying you that the Watchdog Timer has run out.
If you want to delay the email from arriving, type the same email address into the field and click Start Watchdog again to restart your Watchdog.
You can repeat this process as many times as you like; as long as you keep restarting your Watchdog within the timeout, you will not receive an email.
You can also use this service programmatically by sending your Watchdog.Email request to
http://watchdog.email/?email=<email_address>&timeout=<timeout_integer_between_600_and_90000>
Further Reading
Wikipedia: A
watchdog timer
(sometimes called a
computer operating properly or COP timer, or simply a watchdog) is an electronic or software timer that is
used to detect and recover from computer malfunctions. During normal operation, the computer regularly resets
the watchdog timer to prevent it from elapsing, or "timing out". If, due to a hardware fault or program error,
the computer fails to reset the watchdog, the timer will elapse and generate a timeout signal. The timeout
signal is used to initiate corrective actions. The corrective actions typically include placing the computer
system in a safe state and restoring normal system operation.


We will use Neural Networks and Deep Learning to learn how to use... neural networks and deep learning. It's a very long, mathematical book and will take a few months to go through, but it provides a lot of information. Proper artificial intelligence requires mathematics, so don't try to find another text that hides the math. We will go through each chapter of the book at the meetings, but you should also read it by yourself prior to the meetings so that you can ask any questions you have.


If the theft is a first offence and the value of the stolen item is small, I can usually get the charges dropped with diversion or a discharge.
To do this, I look for any weaknesses in the prosecutor's case. I then look at your background to see if there are any mitigating cirucmstances.
Using this information, it's usually possible to convince the prosecutor to drop the charges.
I can negotiate with the prosecutor to drop your charges for just $10 a day.


class RefineryWrapper extends java.lang.Object implements GatheringSource
RefineryManager
instances as GatheringSource
s.| Modifier and Type | Field and Description |
|---|---|
private java.util.HashSet<ResourceManagerEntry> |
assignedWorkers |
private int |
maxWorkersPerRefinery |
private bwapi.Unit |
refinery |
private IResourceManager |
refineryManager |
| Constructor and Description |
|---|
RefineryWrapper(bwapi.Unit refinery,
IResourceManager refineryManager) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addWorker(ResourceManagerEntry worker)
Function for adding a
ResourceManagerEntry to a
GatheringSource . |
boolean |
containsWorker(ResourceManagerEntry worker)
Function for testing if a
ResourceManagerEntry was previously
added towards the GatheringSource . |
int |
getAvailableSpace()
Function for retrieving the number of workers that can be currently added
towards a
GatheringSource since a GatheringSource can
only hold a limited number of workers simultaneously. |
double |
getDistance(bwapi.Position position)
Function for calculating the distance of the
GatheringSource to a
specific Position. |
bwapi.Unit |
getGatheringSource(ResourceManagerEntry worker)
Function for actually retrieving the Unit / gathering spot that a
previously added worker was assigned to internally.
|
boolean |
isSpaceAvailable()
Function for testing if
ResourceManagerEntry s can be added
towards a GatheringSource . |
boolean |
removeWorker(ResourceManagerEntry worker)
Function for removing a worker from the
GatheringSource he was
previously added to. |
private IResourceManager refineryManager
private bwapi.Unit refinery
private int maxWorkersPerRefinery
private java.util.HashSet<ResourceManagerEntry> assignedWorkers
public RefineryWrapper(bwapi.Unit refinery, IResourceManager refineryManager)
public boolean addWorker(ResourceManagerEntry worker)
GatheringSource
ResourceManagerEntry
to a
GatheringSource
. This worker must be managed and therefore
assigned a gathering source by the implementing Class.addWorker
in interface GatheringSource
worker
- the worker that is going to be added towards the
GatheringSource
.GatheringSource
, false if either no space is available or
the worker could not be added towards the
GatheringSource
.public boolean removeWorker(ResourceManagerEntry worker)
GatheringSource
GatheringSource
he was
previously added to.removeWorker
in interface GatheringSource
worker
- the worker that is going to be removed from the
GatheringSource
.GatheringSource
, false if either the Unit was not added
towards it or the Unit was not successfully removed.public boolean containsWorker(ResourceManagerEntry worker)
GatheringSource
ResourceManagerEntry
was previously
added towards the GatheringSource
.containsWorker
in interface GatheringSource
worker
- the worker that the GatheringSource
is being tested
for.GatheringSource
,
false if not.public boolean isSpaceAvailable()
GatheringSource
ResourceManagerEntry
s can be added
towards a GatheringSource
.isSpaceAvailable
in interface GatheringSource
ResourceManagerEntry
s) can be added
towards the GatheringSource
, false if not.public int getAvailableSpace()
GatheringSource
GatheringSource
since a GatheringSource
can
only hold a limited number of workers simultaneously.getAvailableSpace
in interface GatheringSource
GatheringSource
.public double getDistance(bwapi.Position position)
GatheringSource
GatheringSource
to a
specific Position.getDistance
in interface GatheringSource
position
- the Position the distance is calculated to.GatheringSource
towards the given
Position.public bwapi.Unit getGatheringSource(ResourceManagerEntry worker)
GatheringSource
getGatheringSource
in interface GatheringSource
worker
- the ResourceManagerEntry
representing the worker that
was previously added and whose gathering spot is now
requested.ResourceManagerEntry
was
assigned to or null if the Unit assigned Unit is no longer
available.


By default this generator will generate a sector of 100 star-systems. You can also use the button to generate individual systems. The list is formatted to become a bulleted list if pasted into a MediaWiki.
Generation is controlled by a seed; for example, a system generated with seed "Centari" will always be the same.
Warning: seed consistency will not be preserved between different versions of the generator
...


Barcelona coach Valverde: "I feel supported and respected by the club"
Valverde revealed he ate with president Josep Maria Bartomeu this week
by German BonaErnesto Valverde spoke to the press on Friday after two disappointing results, a 3-1 loss to Levante in La Liga and a goalless draw against Slavia Prague in the Champions League.
However, the Barcelona coach revealed he still has the backing of president Josep Maria Bartomeu despite some criticism this season.
"The other day I was with the president," he explained. "The club have always supported me and respected me and that's how I feel, I don't have any problem with that."
Valverde had earlier been asked if he would fear for his job if bad results continued, starting with Saturday's game at home against Celta Vigo. "No," he responded.
On the criticism, he added: "(Whether I) Understand it or not, it is what it is. I don't have too much to say on it. If we had scored a goal (against Slavia), it all would have been calmer. You have to accept how things are.
"A week ago we were flying, we'd won seven games on the trot... Now we have not won in two games and that generates instability around the club. That's good for our opponents but we have to stay firm.
"But we're (still) top of the league and we want to stay there, so we need to get back to winning ways this weekend. We know what losing means at this club."


List of labels
; optional
A list of
constraint_value
s
that must be present in the target platform for this target to be considered
compatible. This is in addition to any constraints already set by the
rule type. If the target platform does not satisfy all listed constraints then
the target is considered incompatible. Incompatible targets are
skipped for building and testing when the target pattern is expanded
(e.g. //...
, :all
). When explicitly specified on the
command line, incompatible targets cause Bazel to print an error and cause a
build or test failure.
Targets that transitively depend on incompatible targets are themselves considered incompatible. They are also skipped for building and testing.
An empty list (which is the default) signifies that the target is compatible with all platforms.
All rules other than Workspace Rules support this
attribute.
For some rules this attribute has no effect. For example, specifying
target_compatible_with
for a
cc_toolchain
is not useful.
See the Platforms page for more information about incompatible target skipping.


| DOSE: |
|
insufflated |
Cocaine |
(powder / crystals) |
A few years back I went on a trip down south through Mexico, Central America, and then to Colombia and Ecuador. It was great fun, and a very rewarding experience.
In Guatamala I met an English guy named Nigel that had been in Colombia. He said that he had traveled from England, going to Brazil, then through various countries, and ending up in Colombia. Nigel told me that along the route he met locals that became his friends, and often they used Cocaine. Nigel said he had been afraid of Cocaine, having been brought up in the typical 'drugs are bad' environment. He was afraid that if he tried it he'd become addicted. Eventually he saw that although his friends used it, they were not addicted. He tried it, and he liked it. He told me that he used it daily for a couple of months. I asked him if it was hard to stop. He said it wasn't.
Now I left him and I kept heading south. He told me of a place called the Hotel Miramar in Santa Marta, Colombia. It's east from Cartegena. He said it's a place where gringos can go and use cocaine, and not really be hassled. Somewhere along my trip I decided I wanted to try cocaine if I had the opportunity.
I made it to Colombia and ended up in Santa Marta. The Hotel Miramar was a fantastic place because it's a gringo hangout. My spanish was decent but I could never get close to the natives because it was too cumbersome talking in their language, and very few Latins speak English. Colombia has a reputation of being unsafe so not many tourists go there, so if you're travelling around the country you feel like you're the only gringo.
So it was nice to meet up with other travellers in the Hotel Miramer. There were people that stayed there for months or years, and then the others that would come for just a day or two. I ended up staying there for a month. I was waiting for mail from home, and also I was enjoying the company of other travellers.
During this time I tried cocaine, and decided I liked it. I would snort the cocaine only. I'd typically use it with other travellers, then a bunch of people would get together and just talk or hang out. I'd usually start using it in the early evening, continue over about a 6 hour period, then I'd stop and go to sleep. I never used it as a pick-me-up in the morning. I got in the habit of only using it when I already felt pretty good.
There were other people that used it a lot more--they would keep going for more than a day or two. I thought this was silly because even though you don't feel sleepy, you know your body wants to sleep, and I didn't want to push it. Also there's not much point in using it for longer periods, as the effect seems to diminish. I would build up a tolerance so that as the time wore on I'd have to take it more and more frequently (over the 4 or 6 hour period in the evening). As I say, I'd usually be with other people when using it and we'd sometimes go out in the night for walks. While in the Hotel you feel perfectly safe using it, it's not a good idea to carry it around town with you--you never know.
I figure that over the month I used the cocaine maybe 15 or 20 times. I liked the feeling it gave me. It completely eliminates any feelings of inhibition, so you feel comfortable talking about anything. You also feel fascinated by what other people are saying, although I would prefer to talk. You feel really good, like the cocaine is tickling your pleasure center. You feel energetic. You wouldn't get hungry.
After a month I decided that the surroundings were getting stale, so I left to go to a neighboring beach called Park Tayrona. It's a really beautiful place and a lot of gringos hang out there as well. I didn't do any cocaine while here but I didn't miss it either. There was no feeling of dependency. Cocaine was more of something I did when it seemed like a good idea--not because I felt I needed it. It was something that you'd use when you're already having a good time--it would kick you up into the next level of enjoyment.
There was immeasurable pot available also in Colombia. I used to smoke a little but didn't really smoke enough to get over the munchy/can't concentrate stage. Other people constantly smoked the stuff. I never really understood the allure. I figured that the best time to use it was when you were hungry and wanted the local food to taste like a king's banquet :^).
The only problems I had with the cocaine was frequent pain in my nose. I was told this was because it wasn't pure, or that it was amphetamine and not cocaine. Over my trip I tried cocaine many more times and it seemed always a variable experience, depending on where I got it. Also my opinion of what 'good' cocaine was never matched anyone else's. One guy gave me some of what he said was the best he had ever used in his life, and it had no effect at all on me. I later decided that what I had called cocaine before was some kind of amphetamine, and what this guy called cocaine was really cocaine (pure), and that for some reason it didn't work on me. This guy used to smoke it also (freebasing) and I tried that several times but never once had any significant effect, although he was flying. After several times when someone would tell me 'try this, this is the best' and it did nothing for me, I decided that the substance I had liked before was no longer available and I stopped testing.
At no time did I ever feel any withdrawal symptoms. Also I never used it every single day--I would stop for a day or two after each day or two of use. And I never used it for a period longer than 6 hours.
I feel my experience with the drug hasn't been harmful at all. Instead it destroyed a lot of myths I had absorbed in the United States culture. I learned that the substance had absolutely no addictive qualities at all. Then I decided that the biggest problem was since it was illegal down there as well (at least if you got caught you'd have to pay a bribe to make the cop go away) you never knew 'exactly' what you were getting. The danger of the drug was never the pure part but what you ended up getting that was called 'cocaine'. I believe my experience with the cocaine has improved me, and I believe everyone (provided they're adults) should have the same option to experiment. The only improvement I could suggest would be fixing the situation so you know what you're getting every time, instead of it being a crap shoot.
Since Colombia is the source of this stuff, it's certainly going to be cheaper. I never paid more than $4 or $5 a gram, and typically paid $3. Of course I believe it wasn't quite as pure because I'd use a gram over an evening, and from what I've heard about stuff in US that's A LOT. Since Colombia I've never used any of the stuff. My thinking is I've heard prices in the US are $100 per gram. At the time I was taking it I felt that it was barely worth the $4 a gram. There's no way I'll pay 25 or 33 times what I could get it for down there.
Pot was also much cheaper. I saw a guy buy perhaps a half pound for something like $7.00. It's truly a weed, and isn't really illegal. Pot is so cheap you never have to buy it--it just gets passed around by people that keep their own supply.
Wages in Colombia are so low compared to wages here, the locals have to pay almost the same proportion of their income to buy cocaine as Americans would have to in the US. I never really saw any evidence of massive drug addiction in Colombia. Almost 100% of the drug use seemed to be by the gringos that were visiting.
I've decided that I believe drugs should be legalized. I believe that we've all been victims of a horrible propaganda campaign. I believe it would be much better if drugs were legalized, regulated (for purity), and also perhaps taxed a little to cover costs of chronic abusers. I believe it is a good idea to travel, because you find out interesting things, like perhaps the USA isn't really as free as you might have thought. In Colombia the police don't really care if you use illegal substances--they just use it as an excuse to sweat a bribe out of you. They're not interested in throwing you in jail, they just want some of your yanqui $$$. Yes, the system is very, very corrupt.
Colombians were probably my favorite people. The country is beautiful and the people are very friendly. Although Colombia has gotten a bad rap in the news, this is unjust. While a few drug kingpins control a lot of the politics in the country and are ruthless murderers, the Colombian people are almost entirely very warm, intelligent, friendly people. It is truly a great country.
When I came back up through Mexico and went through the border crossing at Tijuana, I told the officer that I had just flown up from Cartegena, Colombia. He then checked me out a little more thoroughly than he would have if I'd only been in Mexico--he checked my drivers licence and then looked at my backpack in the xray machine. I don't think he had me unpack it. But the guy said that Colombia wasn't a good place, and the people were screwing us over. His statement simply is not at all true.
One other interesting point: As I understand it if I'm outside the US I am no longer bound by US laws, but must obey the laws of the country I'm in--but that country enforces them and the US doesn't care anymore. I was told by Germans that their laws are binding on them no matter where they are. For example if they get caught in Colombia using drugs and are punished there, the Colombian government will inform the German government, and send them home, and when they get to Germany the German government will then pushish them again. I thought this was rediculous.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


The recent fire came two days after the biggest fire that hit Bacolod with six casualties at Java pension house last Tuesday.
Chief Inspector Publio Ploteña, city fire marshal, identified the fatality as Raniel Macapal.
Ploteña said the blaze started from the house of Belinda Cuadra at around 5:32 a.m., where the victim and an infant were staying.
Ploteña said an occupant at Cuadra’s house rescued Macapal and an infant inside the burning house. However, she was separated from Macapal when she failed to strongly hold his hand.
The victim was left inside the burning house.
Ploteña said they have yet to establish the identity of the occupant who was at Cuadra’s house when the fire happened.
Cuadra’s house was destroyed while three other neighboring houses owned by Silvia Sugilon, Bernardo Galicia, and Jose Bonza Sr., were also damaged. All houses were made of light materials.
The BFP declared fire out at around 6:10 a.m. The estimated cost of damage was pegged at P30,000.
Arson investigators have yet to determine the cause of the fire.


This engine allows a user create a summary of their employees with graphic id cards containing their basic information.
Table of Contents
Installation
Usage
License
Contributing
Tests
Contact Info
Installation
1. Download the necessary files from the repo.
2. Open Visual Studio Code.
3. Open the terminal.
4. Link the terminal to the main folder of the project.
5. enter "npm install"
6. enter "npm install inquirer"
You are now ready to use the application.


|
x = starting x coordinate to print text
y = starting 4 coordinate to print text string$ = string/text to print center x = optional; true = center horizontally center y = optional; true = center vertically |
|
Prints a string at the designated screen coordinates. You can center the text on the coordiates by setting center x/center y to TRUE. This draws the text in the current drawing color.
Note: Printing a space with text will NOT render a block - a space is an empty value. So printing " " will not make a box appear. |
|
; Text example
; enable graphics mode Graphics 800,600,16 ; wait for ESC key before ending While Not KeyHit(1) ;print the text, centered horizontally at x=400, y=0 Text 400,0,"Hello There!",True,False Wend |


My Name is Farouk Ibrahim
I live in Amman Jordan.
My education background:
-
Code Fellows - Amman, Jordan
Certificate - Advanced Software Development in Full-Stack JavaScript - 2021 -
Middle East University - Amman, Jordan
Degree - Civil Engineering - 2016 -
AL-Hassad SchooL - Amman, Jordan
Tawjihi Science Stream
My work experience background:
-
MESC for Management Solutions, Amman, Planning Engineer, Jun 2019 – Apr 2021
- Created & updated time schedules for projects (baseline, update and look ahead), S-curves, Cash Flow charts, Monthly reports and progress reports. Assisted in preparing claims for projects.
-
AL-Yacoub for Contracting, Amman, Planning Engineer, Apr 2018 – May 2019
- Created & updated time schedules for projects (baseline, update and look ahead), S-curves, Cash Flow charts, Monthly reports and progress reports.
-
A.ABBASSY for Management Solutions, Amman, Planning Engineer, May 2017 – Feb 2018
- Created & updated time schedules for projects (baseline, update and look ahead), S-curves, Cash Flow charts, Monthly reports and progress reports and shop drawings & procurement schedules.
-
UNRWA, Amman, Planning Engineer, May 2017 – Feb 2018
- First hand practice and training in a professional environment on checking structural plans. Design structural skeleton & elements for the agency’s projects.
My top ten favorite cartoon movies are:
- Despicable Me
- Ice Age
- Incredibles
- Up
- WALL-E
- Chicken Run
- How to Train Your Dragon
- Big Hero 6
- A Shaun the Sheep Movie
- Antz


MIT Central
Platforms
Your Classes
If you don't want to add a link for a certain field, you can leave it blank.
Class Name
Representative Color
Lecture Link
Time:
M
T
W
R
F
Recitation Link
Time:
M
T
W
R
F
Lab Link
Time:
M
T
W
R
F
Class Website
Office Hours Link


Privacy Policy
Shinonomekazan Co., Ltd. (hereinafter the "Company") provides for the following privacy policy regarding the handling of Personal Information of users for every kind of service provided by the Company (hereinafter "Services") and will take all possible measures to protect the information.
Article 1 Definition of Personal Information
Personal Information means any information concerning a living individual which contains the name, date of birth, telephone number, address, e-mail address, organization name, location, social network service account or any other information that may identify a specific individual (including information that may not identify a specific individual by itself, but may be easily collated with other information and will thereby enable identification of a specific individual) or any information containing an individual identification code as specified in Article 2, paragraph 2 of the Personal Information Protection Act.
Article 2 Collection of Personal Information
The Company may collect Personal Information to the extent necessary for the Company to provide Services by requesting provision of information from users, by receiving it from another service with which users permit association in using Services, or by collecting it by ourselves as users make use of the Services. The Company will legitimately collect Personal Information, and will never collect it by fraudulent or otherwise illegal means. A user must not provide the Company with Personal Information of a third party that the user has obtained by fraudulent or otherwise illegal means.
Article 3 Purposes of Using Personal Information
-
The Company will use collected Personal Information for the following purposes of
utilization or to the extent necessary for the achievement of the purposes of
utilization. Should it need to change a purpose of utilization, the Company will notify
users or announce it.
- To process registration for Services, verify identity, and provide, maintain, protect and improve Services
- To check the conditions of use of Services (including cases of using services provided by any other business than the Company through Services)
- To provide information about contents of Services, updates, events/campaigns, changes to terms, etc.
- To provide information about a Service and respond to inquiries about it
- To deal with any violation of the terms of Services and every kind of regulation of the Company
- To create statistical data about the use of Services
- To plan and draw up plans for future Services and implement them
- To distribute or display advertising of the Company or a third party
- To send prizes and other goods to users who win them in a campaign, etc.
- To be used for marketing
- In addition to the purposes of utilization set forth in the preceding paragraph, the Company may set out a purpose of utilization peculiar to an individual Service. The Company will identify such purposes of utilization of an individual Service as much as possible, and will announce them in advance on the website or a service screen for the individual Service.
Article 4 Third Party Provision, Entrustment and Joint Use of Collected Personal Information
- Unless it is permitted under the Personal Information Protection Act or other laws and regulations, the Company will not provide any third party with any Personal Information collected from a user without the consent of that user.
- To the extent necessary for the achievement of the purposes of utilization, the Company may entrust all or part of the handling of Personal Information to an outsourcee. In this case, the Company will sufficiently examine the competence of the outsourcee as an operator of the outsourced business, and will, in making a contract, check relevant matters, including concerning confidentiality obligations, and will develop a system for adequate management of the information.
- If in providing Services to users in the future, the Company requires another company to conduct operations (hereinafter the “Cooperating Company”), the Company may use Personal Information jointly with the Cooperating Company. In this case, prior to joint use, the Company will provide users with an announcement about the purpose of utilization, name of the Cooperating Company, types of the information, and name of the administrator.
Article 5 Disclosure, Correction and Discontinuation of Use of Personal Information
- If disclosure of Personal Information is requested by the user concerned under the Personal Information Protection Act, the Company will, to the extent that the Company is obliged to disclose it under the same Act, disclose the information without delay after having confirmed that it is a request made by the user concerned. When disclosing Personal Information, the Company may charge a disclosure fee in accordance with a procedure separately provided for by the Company.
- When a user requests under the Personal Information Protection Act, (1) correction of the content of his/her Personal Information as the Personal Information is not accurate or (2) discontinuation of use of his/her Personal Information as it is used beyond the purposes of utilization announced in advance, or it is collected by any fraudulent or otherwise illegal means, the Company will make necessary examination without delay after having confirmed that it is a request made by the user concerned, and will, based on the results of the examination, correct the content of the Personal Information or discontinue using it and will give the user notice to such effect.
- When a user requests deletion of his/her Personal Information, the Company will, only if the Company finds that it needs to accept the request, delete the Personal Information without delay after having confirmed that it is a request made by the user concerned and will give the user notice to such effect.
-
A user who makes a request under the preceding paragraphs needs to send the following
information, and other information and materials designated by the Company:
- Name, address, telephone number and e-mail address;
- Contents of the request, circumstances, and supporting materials; and
- Materials for identity verification.
-
A request under paragraphs 1 and 2 may be unable to be accepted, in any of the
following cases. In this case, the Company will give the user notice to such effect and
explain the reason.
- If it is likely to harm the life, body, property, or other rights or interests of the user or a third party
- If it is likely to significantly impede adequate implementation of the business of the Company
- If it violates laws and regulations
- If the Company cannot confirm that it is a request made by the user concerned
Article 6 Link
While a company other than the Company may collect Personal Information on its website to which the website of the Company is linked, this Privacy Policy, however, does not apply to it, and the Company will not undertake any obligations or responsibilities whatsoever regarding the handling of Personal Information by any company other than the Company.
Article 7 Cookies and Behavioral Targeting Advertising
The Company may collect, by using cookies, attribute information, terminal information, and history of a user’s actions in Services (accessed URL, content, access sequence, period of stay, etc.) that may not identify a specific individual, to improve or expand Services; to create statistical data about the use of Services; to plan or draw up a plan for a new Service or implement it; to distribute or display advertising of the Company or a third party; or to be used for marketing. Services hereunder use a service for behavioral targeting advertising to distribute appropriate advertising of the Company or a third party. Any user who does not wish display of behavioral targeting advertising will access the opt-out page below and follow the procedure:
Article 8 Point of Contact for Inquiries
For any questions about this Privacy Policy, inquiries about the handling of Personal Information, and requests under Article 5, please contact the inquiry address (contact@shinonomekazan.com). The Company will provide answers to inquiries, as a rule, by e-mail only. Unless otherwise provided for in the Personal Information Protection Act or other relevant laws and regulations, the Company will not be obliged to answer any inquiries.
Article 9 Revision
Whenever needed, the Company may revise this Privacy Policy. When revising this Privacy Policy, the Company will promptly announce the date and contents of the revision in our website.


| | |
- builtins.object
-
- AbstractBlock
-
- AbstractText
-
- MarkDown
- PlainText
- Actions
- Button
- Confirmation
- Context
- Divider
- Header
- Image
- Input
- Option
- OptionGroup
- Overflow
- PlainTextInput
- Section
- SelectMenu
-
- MultiSelectMenu
- View
-
- Home
- Modal
- AbstractBuilder
- BlocksArray
- BlocksFactory
class AbstractBlock(builtins.object) |
| |
AbstractBlock(*args, **kwargs)
Main class that represents an instance of a Block element in Slack. Any instance that represents
a block will inherit from it |
| |
Methods defined here:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods defined here:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods defined here:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes defined here:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
- __required_slots__ = ()
- __type__ = None
|
class AbstractBuilder(builtins.object) |
| |
AbstractBuilder(*args, **kwargs)
Abstract class that represents a builder of am AbstractBlock. Any builder in an AbstractBlock must
inherit from it. It allows the "chain-navigation" of the Block using the builder pattern, allowing
to step back to uppper builder when all settings in current builder are donde. |
| |
Methods defined here:
- __init__(self, _parent=None)
- Initialize self. See help(type(self)) for accurate signature.
- build(self)
- Returns the instance of the object in any moment
:return: The instance created by the builder, which type is defined by __obj__
- up(self)
- Provides the builder being used in attribute _parent, which by default is self
:return: The builder represented by attribute _parent
Static methods defined here:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
Data and other attributes defined here:
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __obj__ = None
|
class AbstractText(AbstractBlock) |
| |
AbstractText(*args, **kwargs)
Represents any Text block in Slack, and contains common functionality to both
implementations, plain:text and mrkdwn |
| |
- Method resolution order:
- AbstractText
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.AbstractText.Builder'>
- Common Builder for text fields
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __required_slots__ = ('_text',)
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __mutually_exclusive_slots__ = ()
- __type__ = None
|
class Actions(AbstractBlock) |
| |
Actions(*args, **kwargs)
A block that is used to hold interactive elements. |
| |
- Method resolution order:
- Actions
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.Actions.Builder'>
- __required_slots__ = ('_elements',)
- __type__ = 'actions'
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
|
class BlocksArray(builtins.object) |
| |
BlocksArray(**kwargs)
This class represents the array of blocks being sent to Slack message. It doesn't extend AbstractBlocks because
actually it's not a block, but a group of blocks in an array. So just acts as a wrapper of an array with a
dictionary of blocks |
| |
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- has_input_block(self)
- Check if current blocks contain an Input block type. Useful to validate submit field in Views
:return: True if contains an Input Block, False otherwise
- num_of_blocks(self)
- Provides the current number of block elements created
:return: The length of internal array _blocks
- serialize(self, as_json=False)
- Returns the array of blocks's dictionary. It's an array, not a dictionary with key "blocks". The array is ready
to be serialized in Slack
:return: An array of dicts with current content blocks
Static methods defined here:
- of(_array_of_dicts, from_json=False)
- Provides an instance of BlocksArray initialized with supplied array of serialized blocks. Supplied argument
must be an array of Block's dictionaries, or a json dumps of such array
:param _array_of_dicts: An array of Block dictionaries
:param from_json: Supplied dictionary is in json representation
:return: An instance of BlockArray with an array of instances of AbstractBlocks in field _blocks
Data and other attributes defined here:
- Builder = <class 'view.BlocksArray.Builder'>
|
class BlocksFactory(builtins.object) |
| |
Factory class to deserialize blocks back to objects. Very useful to manipulate messages and update content
of objects that extend AbstractBlock |
| |
Class methods defined here:
- get_block_class(dict_) from builtins.type
- It checks if type_ exists in given dictionary, and then loads the class of that type. If no "type" field is
in the dictionary, then it checks the field names to see if they match a set of required fields by some blocks,
in such case, an instance of that class is loaded. If no match is found, then None is returned
:param dict_: A dictionary with blocks fields to try to find a Block name
:return: The name of the class that matches supplied dictionary fields, or None if no match is found
Static methods defined here:
- of(dictionary, from_json=False)
- Builds an instance of a class that inherits from AbstractBlock from supplied dictionary
:param dictionary: The previously serialized dictionary
:param from_json: Supplied dictionary is a json representation of a dictionary
:return: An instance of some class that extends AbstractBlock
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
|
class Button(AbstractBlock) |
| |
Button(*args, **kwargs)
Represent's the interactive component, Button. |
| |
- Method resolution order:
- Button
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.Button.Builder'>
- __required_slots__ = ('_text', '_action_id')
- __type__ = 'button'
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
|
class Confirmation(AbstractBlock) |
| |
Confirmation(*args, **kwargs)
An object that defines a dialog that provides a confirmation step to any interactive element. This dialog
will ask the user to confirm their action by offering a confirm and deny buttons. |
| |
- Method resolution order:
- Confirmation
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.Confirmation.Builder'>
- STYLE_DANGER = 'danger'
- STYLE_PRIMARY = 'primary'
- __required_slots__ = ('_title', '_text', '_confirm', '_deny')
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
- __type__ = None
|
class Context(AbstractBlock) |
| |
Context(*args, **kwargs)
Displays message context, which can include both images and text.
The size (images, fonts etc) of this block is smaller than other Blocks |
| |
- Method resolution order:
- Context
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.Context.Builder'>
- __required_slots__ = ('_elements',)
- __type__ = 'context'
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
|
class Divider(AbstractBlock) |
| |
Divider(*args, **kwargs)
A block divider. Basically adds a horizontal line that can be use to separate blocks |
| |
- Method resolution order:
- Divider
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.Divider.Builder'>
- __type__ = 'divider'
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
- __required_slots__ = ()
|
class Header(AbstractBlock) |
| |
Header(*args, **kwargs)
Class that represents a header block in Slack |
| |
- Method resolution order:
- Header
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.Header.Builder'>
- __required_slots__ = ('_text',)
- __type__ = 'header'
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
|
class Home(View) |
| |
Home(*args, **kwargs)
The Home tab is a persistent, yet dynamic interface for apps.
Present each of your users with a unique Home tab just for them, always found in the exact same place. |
| |
- Method resolution order:
- Home
- View
- AbstractBlock
- builtins.object
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
Data and other attributes defined here:
- Builder = <class 'view.Home.Builder'>
- __type__ = 'home'
Methods inherited from View:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes inherited from View:
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __required_slots__ = ('_title', '_blocks')
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __mutually_exclusive_slots__ = ()
|
class Image(AbstractBlock) |
| |
Image(*args, **kwargs)
An element to insert an image as part of a larger block of content. |
| |
- Method resolution order:
- Image
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.Image.Builder'>
- __required_slots__ = ('_image_url', '_alt_text')
- __type__ = 'image'
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
|
class Input(AbstractBlock) |
| |
Input(*args, **kwargs)
A block that collects information from users - it can hold a plain-text input element, a select menu element,
a multi-select menu element, or a datepicker (later one currently not implemented) |
| |
- Method resolution order:
- Input
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.Input.Builder'>
- __required_slots__ = ('_label', '_element')
- __type__ = 'input'
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
|
class MarkDown(AbstractText) |
| |
MarkDown(*args, **kwargs)
Class that represents a slack's mrkdwn block |
| |
- Method resolution order:
- MarkDown
- AbstractText
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.MarkDown.Builder'>
- Builder for MarkDown object. Extends AbstractText builder with new methods
- __type__ = 'mrkdwn'
Data and other attributes inherited from AbstractText:
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __required_slots__ = ('_text',)
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __mutually_exclusive_slots__ = ()
|
class Modal(View) |
| |
Modal(*args, **kwargs)
Modals provide focused spaces ideal for requesting and collecting data from users, or temporarily
displaying dynamic and interactive information. |
| |
- Method resolution order:
- Modal
- View
- AbstractBlock
- builtins.object
Data and other attributes defined here:
- Builder = <class 'view.Modal.Builder'>
- __type__ = 'modal'
Methods inherited from View:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes inherited from View:
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __required_slots__ = ('_title', '_blocks')
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __mutually_exclusive_slots__ = ()
|
class MultiSelectMenu(SelectMenu) |
| |
MultiSelectMenu(*args, **kwargs)
A multi-select menu allows a user to select multiple items from a list of options. Just like regular select menus,
multi-select menus also include type-ahead functionality, where a user can type a part or all of an option string
to filter the list |
| |
- Method resolution order:
- MultiSelectMenu
- SelectMenu
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.MultiSelectMenu.Builder'>
- __all_slots__ = None
- __type__ = 'multi_static_select'
Methods inherited from SelectMenu:
- get_default(self)
- Provides the default option, if any, as a tuple
:return: The default option if any, as a tuple (text, value)
- has_option(self, text_option)
- Checks if the text supplied is already included in the array of options
:param text_option: The option text to check if exists in array
:return: True if exists, False otherwise
- set_default(self, text_option)
- Sets default value in the menu. It's possible to supply, or the text that represents the underlying value
in the menu, or the value itself
:param text_option: The value of the default option, or the text representing such value in the menu
Data and other attributes inherited from SelectMenu:
- __mutually_exclusive_slots__ = ('_options', '_option_groups')
- __required_slots__ = ('_placeholder', '_action_id')
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
|
class Option(AbstractBlock) |
| |
Option(*args, **kwargs)
An object that represents a single selectable item in a select menu, multi-select menu, checkbox group,
radio button group, or overflow menu. |
| |
- Method resolution order:
- Option
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.Option.Builder'>
- __required_slots__ = ('_text', '_value')
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
- __type__ = None
|
class OptionGroup(AbstractBlock) |
| |
OptionGroup(*args, **kwargs)
Provides a way to group options in a select menu or multi-select menu. |
| |
- Method resolution order:
- OptionGroup
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.OptionGroup.Builder'>
- __required_slots__ = ('_label', '_options')
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
- __type__ = None
|
class Overflow(AbstractBlock) |
| |
Overflow(*args, **kwargs)
This is like a cross between a button and a select menu - when a user clicks on this overflow button, they will
be presented with a list of options to choose from. Unlike the select menu, there is no typeahead field, and
the button always appears with an ellipsis ("...") rather than customisable text.
As such, it is usually used if you want a more compact layout than a select menu, or to supply a list of
less visually important actions after a row of buttons.
You can also specify simple URL links as overflow menu options, instead of actions. |
| |
- Method resolution order:
- Overflow
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.Overflow.Builder'>
- __required_slots__ = ('_action_id', '_options')
- __type__ = 'overflow'
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
|
class PlainText(AbstractText) |
| |
PlainText(*args, **kwargs)
Class that represents a slack's plain_text block |
| |
- Method resolution order:
- PlainText
- AbstractText
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.PlainText.Builder'>
- Builder for PlainText object. Extends AbstractText builder with new methods
- __type__ = 'plain_text'
Data and other attributes inherited from AbstractText:
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __required_slots__ = ('_text',)
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __mutually_exclusive_slots__ = ()
|
class PlainTextInput(AbstractBlock) |
| |
PlainTextInput(*args, **kwargs)
A plain-text input, it creates a field where a user can enter freeform data.
It can appear as a single-line field or a larger textarea using the multiline flag.
PlainTextInput elements are currently only available in modals. |
| |
- Method resolution order:
- PlainTextInput
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.PlainTextInput.Builder'>
- __required_slots__ = ('_action_id',)
- __type__ = 'plain_text_input'
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __mutually_exclusive_slots__ = ()
|
class Section(AbstractBlock) |
| |
Section(*args, **kwargs)
A section can be used as a simple text block, in combination with text fields, or side-by-side with any of
the available block elements. |
| |
- Method resolution order:
- Section
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- _validation(self)
- This method checks if supplied arguments meets required block specification
:return: An AttributeError is thrown if something is wrong
Data descriptors defined here:
- _accessory
- _block_id
- _fields
- _text
Data and other attributes defined here:
- Builder = <class 'view.Section.Builder'>
- _ALLOWED_ACCESSORIES = [<class 'view.Button'>, <class 'view.Image'>, <class 'view.Overflow'>, <class 'view.PlainTextInput'>, <class 'view.SelectMenu'>, <class 'view.MultiSelectMenu'>]
- __mutually_exclusive_slots__ = ('_text', '_fields')
- __type__ = 'section'
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __required_slots__ = ()
|
class SelectMenu(AbstractBlock) |
| |
SelectMenu(*args, **kwargs)
A select menu, just as with a standard HTML <select> tag, creates a drop down menu with a list of options for
a user to choose. The select menu also includes type-ahead functionality, where a user can type a part or all
of an option string to filter the list. |
| |
- Method resolution order:
- SelectMenu
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
- get_default(self)
- Provides the default option, if any, as a tuple
:return: The default option if any, as a tuple (text, value)
- has_option(self, text_option)
- Checks if the text supplied is already included in the array of options
:param text_option: The option text to check if exists in array
:return: True if exists, False otherwise
- set_default(self, text_option)
- Sets default value in the menu. It's possible to supply, or the text that represents the underlying value
in the menu, or the value itself
:param text_option: The value of the default option, or the text representing such value in the menu
Data and other attributes defined here:
- Builder = <class 'view.SelectMenu.Builder'>
- __mutually_exclusive_slots__ = ('_options', '_option_groups')
- __required_slots__ = ('_placeholder', '_action_id')
- __type__ = 'static_select'
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
|
class View(AbstractBlock) |
| |
View(*args, **kwargs)
Abstract class that represents a View. There're two types of views, namely Modals and Hometabs. |
| |
- Method resolution order:
- View
- AbstractBlock
- builtins.object
Methods defined here:
- __init__(self, **kwargs)
- Initialize self. See help(type(self)) for accurate signature.
Data and other attributes defined here:
- Builder = <class 'view.View.Builder'>
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
- __required_slots__ = ('_title', '_blocks')
Methods inherited from AbstractBlock:
- __eq__(self, other)
- Two instances are equal if their serialization dict matches
:param other: Another instance of current type
:return: True if equal, False otherwise
- serialize(self, as_json=False)
- Builds a dictionary with current block elements. It's a recursive function that serializes
all elements in block
:param as_json: If True, provides a json representation of the dictionary with the block elements.
:return: A dictionary with block elements
Class methods inherited from AbstractBlock:
- deserialize(_dict, from_json=False) from builtins.type
- Deserializes a slack block, building the instance that represents it. The function
invokes BlocksFactory.of method recursively when needed
:param _dict: The block instance as a dictionary
:param from_json: If True, it loads dictionary first from supplied json string
:return: An instance of a Slack block
Static methods inherited from AbstractBlock:
- __new__(cls, *args, **kwargs)
- Create and return a new object. See help(type) for accurate signature.
Data and other attributes inherited from AbstractBlock:
- __all_slots__ = None
- __hash__ = None
- __mutually_exclusive_slots__ = ()
- __type__ = None
| |


CompanyVision
Innovation and Quality is our company key value, and we put same attention on best ever services that we always pursuit and offer. By offering complete product solution and offering trouble shooting to our domestic & worldwide partners, we grow better and stronger together with our partners to help stone factory customers polish better but at lower production cost. Always working together with processing site operators and keeping aggressive in technology innovation, always manufacturing and distributing premium quality products and offering best ever services, GRANITECH DIATOOLS is your ideal strategic partner to work together, grow together and share together.


ARMORY3D
home
features
workflow
renderer
nodes
engine
platforms
Animations
news
manual
community
download
MENU
Home
news
manual
community
download
Features
workflow
renderer
nodes
engine
platforms
Animations
Content Section One: Grid box One
Content Section One: Grid box Two
Content Section Two: Grid box One
Content Section Two: Grid box Two
Content Section Two: Grid box Three